import from HEAD
[freeradius.git] / dialup_admin / htdocs / login_time_create.php3
1 <html>
2 <head>
3 <title>Login-Time Creation Page</title>
4 <meta http-equiv="Content-Type" content="text/html; charset=<?php echo $config[general_charset]?>">
5 <link rel="stylesheet" href="style.css">
6 </head>
7 <body bgcolor="#80a040" background="images/greenlines1.gif" link="black" alink="black">
8 <?php
9
10 function check_day($day){
11         switch($day){
12                 case 'Mo':
13                 case 'Tu':
14                 case 'We':
15                 case 'Th':
16                 case 'Th':
17                 case 'Fr':
18                 case 'Sa':
19                 case 'Su':
20                 case 'Al':
21                 case 'Any':
22                 case 'Wk':
23                         return 1;
24                         break;
25                 default:
26                         return 0;
27                         break;
28         }
29 }
30
31 $mapping = array(
32         'Mo' => 'Monday',
33         'Tu' => 'Tusday',
34         'We' => 'Wednesday',
35         'Th' => 'Thursday',
36         'Fr' => 'Friday',
37         'Sa' => 'Saturday',
38         'Su' => 'Sunday',
39         'Al' => 'All Days',
40         'Any' => 'All Days',
41         'Wk' => 'Weekdays');
42
43 $rules = array();
44
45 if ($add == 1){
46         if ($use == 'double' && $start_day != $stop_day){
47                 $new = $start_day;
48                 if ($stop_day != '')
49                         $new .= "-$stop_day";
50                 if ($Dstart_time != '' && $Dstop_time != '')
51                         $new .= "$Dstart_time-$Dstop_time";
52         }
53         else if ($use == 'one'){
54                 $new = $day;
55                 if ($Mstart_time != '' && $Mstop_time != '')
56                         $new .= "$Mstart_time-$Mstop_time";
57         }
58         if ($new != ''){
59                 if ($rulestr == '')
60                         $rulestr = $new;
61                 else
62                         $rulestr .= ",$new";
63         }
64 }
65 $Mstart_time = $Mstop_time = $Dstart_time = $Dstop_time = '';
66
67
68 if ($rulestr != ''){
69         $rulestr = str_replace('"','',$rulestr);
70         $rules1 = preg_split('/[,|]/',$rulestr);
71 }
72
73 if ($rules1){
74         foreach ($rules1 as $rule){
75                 if ($delete1 == 1 && $sel_rule == $rule)
76                         continue;
77                 $matches = array();
78                 if (preg_match('/^\w{2,3}$/',$rule)){
79                         if (!check_day($rule)){
80                                 $err_msg .= "<b>Rule '$rule' is invalid</b><br>\n";
81                                 continue;
82                         }
83                         if ($sel_rule == $rule || $sel_rule == ''){
84                                 $checked[one] = 'checked';
85                                 $selected_more[$rule] = 'selected';
86                         }
87                         $msg = $mapping[$rule];
88                 }
89                 else if (preg_match('/^(\w{2,3})(\d{4})-(\d{4})$/',$rule,$matches)){
90                         if (!check_day($matches[1])){
91                                 $err_msg .= "<b>Rule '$rule' is invalid</b><br>\n";
92                                 continue;
93                         }
94                         if ($sel_rule == $rule || $sel_rule == ''){
95                                 $checked[one] = 'checked';
96                                 $selected_more[$matches[1]] = 'selected';
97                                 $Mstart_time = $matches[2];
98                                 $Mstop_time = $matches[3];
99                         }
100                         $msg = $mapping[$matches[1]] . " $matches[2] - $matches[3]";
101                 }
102                 else if (preg_match('/^(\w{2,3})-(\w{2,3})$/',$rule,$matches)){
103                         if (!check_day($matches[1]) || !check_day($matches[2])){
104                                 $err_msg .= "<b>Rule '$rule' is invalid</b><br>\n";
105                                 continue;
106                         }
107                         if ($sel_rule == $rule || $sel_rule == ''){
108                                 $checked[double] = 'checked';
109                                 $selected_start[$matches[1]] = 'selected';
110                                 $selected_stop[$matches[2]] = 'selected';
111                         }
112                         $msg = $mapping[$matches[1]] . " - " . $mapping[$matches[2]];
113                 }
114                 else if (preg_match('/^(\w{2,3})-(\w{2,3})(\d{4})-(\d{4})$/',$rule,$matches)){
115                         if (!check_day($matches[1]) || !check_day($matches[2])){
116                                 $err_msg .= "<b>Rule '$rule' is invalid</b><br>\n";
117                                 continue;
118                         }
119                         if ($sel_rule == $rule || $sel_rule == ''){
120                                 $checked[double] = 'checked';
121                                 $selected_start[$matches[1]] = 'selected';
122                                 $selected_stop[$matches[2]] = 'selected';
123                                 $Dstart_time = $matches[3];
124                                 $Dstop_time = $matches[4];
125                         }
126                         $msg = $mapping[$matches[1]] . " - " . $mapping[$matches[2]] . " $matches[3] - $matches[4]";
127                 }
128                 else{
129                         $err_msg .= "<b>Rule $rule is invalid</b><br>\n";
130                         continue;
131                 }
132                 array_push($rules,$rule);
133                 $rule_msgs[$rule] = $msg;
134         }
135 }
136 if ($sel_rule != '')
137         $selected_rule[$sel_rule] = 'selected';
138 else
139         $Mstart_time = $Mstop_time = $Dstart_time = $Dstop_time = '';
140
141 $rulestr = '';
142 foreach ($rules as $rule){
143         if ($rulestr == '')
144                 $rulestr = "$rule";
145         else
146                 $rulestr .= ",$rule";
147
148 if ($update == 1 && $val != '')
149         echo <<<EOM
150 <script language="JavaScript1.1" type="text/javascript">
151 window.opener.document.edituser.$val.value = "\"$rulestr\"";
152 window.close();
153 </script>
154 EOM;
155
156 if ($checked[double] == '' && $checked[one] == '')
157         $checked[double] = 'checked';
158
159 ?>
160 <center>
161 <table border=0 width=540 cellpadding=1 cellspacing=1>
162 <tr valign=top>
163 <td width=340></td>
164 <td bgcolor="black" width=400>
165         <table border=0 width=100% cellpadding=2 cellspacing=0>
166         <tr bgcolor="#907030" align=right valign=top><th><font color="white">Login-Time Create Page</font>&nbsp;</th></tr>
167         </table>
168 </td></tr>
169 <form name=ruleform method=post action="login_time_create.php3">
170 <input type=hidden name=add value="0">
171 <input type=hidden name=delete1 value="0">
172 <input type=hidden name=update value="0">
173 <input type=hidden name=val value="<?php echo $val?>">
174 <tr bgcolor="black" valign=top><td colspan=2>
175         <table border=0 width=100% cellpadding=12 cellspacing=0 bgcolor="#ffffd0" valign=top>
176         <tr><td align=center>
177 <table width=90%>
178 <tr>
179 <td>&nbsp;</td>
180 <td><b>Start Day</b></td>
181 <td><b>Stop Day</b></td>
182 <td align=center><b>Time (HHMM)</b></td>
183 </tr>
184 <tr>
185
186 <?php
187         echo <<<EOM
188 <td><input type=radio name=use value=double $checked[double]>&nbsp;<b>Range</b></td>
189 <td><select name=start_day OnClick="this.form.use[0].checked=true;this.form.Mstart_time.value='';this.form.Mstop_time.value=''">
190 <option value="Mo" $selected_start[Mo]>Monday
191 <option value="Tu" $selected_start[Tu]>Tuesday
192 <option value="We" $selected_start[We]>Wednesday
193 <option value="Th" $selected_start[Th]>Thursday
194 <option value="Fr" $selected_start[Fr]>Friday
195 <option value="Sa" $selected_start[Sa]>Saturday
196 <option value="Su" $selected_start[Su]>Sunday
197 </select></td>
198 <td><select name=stop_day OnClick="this.form.use[0].checked=true;this.form.Mstart_time.value='';this.form.Mstop_time.value=''">
199 <option value="Mo" $selected_stop[Mo]>Monday
200 <option value="Tu" $selected_stop[Tu]>Tuesday
201 <option value="We" $selected_stop[We]>Wednesday
202 <option value="Th" $selected_stop[Th]>Thursday
203 <option value="Fr" $selected_stop[Fr]>Friday
204 <option value="Sa" $selected_stop[Sa]>Saturday
205 <option value="Su" $selected_stop[Su]>Sunday
206 </select></td>
207 <td align=right><input type=text name=Dstart_time size=4 value="$Dstart_time" OnClick="this.form.use[0].checked=true;this.form.Mstart_time.value='';this.form.Mstop_time.value=''">
208 &nbsp;-&nbsp;
209 <input type=text name=Dstop_time size=4 value="$Dstop_time" OnClick="this.form.use[0].checked=true;this.form.Mstart_time.value='';this.form.Mstop_time.value=''"></td>
210 </tr>
211 <tr>
212 <td><input type=radio name=use value=one $checked[one]>&nbsp;<b>Specific</b></td>
213 <td><select name=day OnClick="this.form.use[1].checked=true;this.form.Dstart_time.value='';this.form.Dstop_time.value=''">
214 <option value="Mo" $selected_more[Mo]>Monday
215 <option value="Tu" $selected_more[Tu]>Tuesday
216 <option value="We" $selected_more[We]>Wednesday
217 <option value="Th" $selected_more[Th]>Thursday
218 <option value="Fr" $selected_more[Fr]>Friday
219 <option value="Sa" $selected_more[Sa]>Saturday
220 <option value="Su" $selected_more[Su]>Sunday
221 <option value="Wk" $selected_more[Wk]>Weekdays
222 <option value="Al" $selected_more[Al]>All Days
223 </select></td>
224 <td colspan=2 align=right><input type=text name=Mstart_time size=4 value="$Mstart_time" OnClick="this.form.use[1].checked=true;this.form.Dstart_time.value='';this.form.Dstop_time.value=''">
225 &nbsp;-&nbsp;
226 <input type=text name=Mstop_time size=4 value="$Mstop_time" OnClick="this.form.use[1].checked=true;this.form.Dstart_time.value='';this.form.Dstop_time.value=''"></td>
227 </tr>
228 EOM;
229 ?>
230
231 <tr><td>&nbsp;</td></tr>
232 <tr><td colspan=5 align=center>
233 <input type=submit class=button value=" + " OnClick="this.form.add.value=1">
234 &nbsp;&nbsp;&nbsp;
235 <input type=submit class=button value=" - " OnClick="this.form.delete1.value=1">
236 </td></tr>
237 <tr><td colspan=5 align=center>
238 <br>
239 <b>Rule Set</b>
240 </td></tr>
241 <tr><td colspan=5 align=center>
242 <?php
243 if (!empty($rules)){
244         echo "<select name=\"sel_rule\" size=5 multi OnChange=\"this.form.submit()\">\n";
245         foreach ($rules as $rule)
246                 echo "<option value=\"$rule\" $selected_rule[$rule]>$rule_msgs[$rule]\n";
247         echo "</select>\n";
248 }
249 else
250         echo "<i>No rules available</i><br>\n"; 
251 ?>
252 </td></tr>
253 <tr><td colspan=5 align=center><?php echo $err_msg ?></td></tr>
254 <tr><td>&nbsp;</td></tr>
255 <tr><td colspan=5 align=center><b>Rule string (<a href="help/login_time_help.html" target=lt_help onclick=window.open("login_time_help.html","lt_help","width=600,height=370,toolbar=no,scrollbars=no,resizable=yes") title="Login-Time Help Page"><font color="blue">UUCP Format</font></a>)</b></td></tr>
256 <tr><td colspan=5 align=center>
257 <input type=text name=rulestr value="<?php echo $rulestr ?>" size=40 OnChange="this.form.submit()">
258 </td></tr>
259 <tr><td>&nbsp;</td></tr>
260 <tr><td colspan=5 align=center>
261 <input type=submit class=button value="Update Attribute in User Edit page" OnClick="this.form.update.value=1">
262 </td></tr>
263 </table>
264 <?php
265 if ($rulestr == '' && $first == 'yes')
266         echo <<<EOM
267 <script language="JavaScript1.1" type="text/javascript">
268 window.document.ruleform.rulestr.value=window.opener.document.edituser.$val.value;
269 window.document.ruleform.submit();
270 </script>
271 EOM;
272 ?>
273 </form>
274 </td></tr>
275 <tr><td align=center>
276 <a href="javascript:window.close();"><b>Close Window</b></a>
277 </td></tr>
278 </center>
279 </table>
280 </tr>
281 </table>
282 </body>
283 </html>