update otp_hotp() to support 6,7,8,9 digit otp's
[freeradius.git] / dialup_admin / htdocs / nas_admin.php3
1 <?php
2 require('../conf/config.php3');
3
4 if (is_file("../lib/sql/drivers/$config[sql_type]/functions.php3"))
5         include_once("../lib/sql/drivers/$config[sql_type]/functions.php3");
6 else{
7         echo <<<EOM
8 <title>NAS Administration Page</title>
9 <link rel="stylesheet" href="style.css">
10 </head>
11 <body>
12 <center>
13 <b>Could not include SQL library functions. Aborting</b>
14 </body>
15 </html>
16 EOM;
17         exit();
18 }
19 if ($config[general_restrict_nasadmin_access] == 'yes'){
20         $auth_user = $_SERVER["PHP_AUTH_USER"];
21         if ($auth_user == '' || $mappings[$auth_user][nasadmin] != 'yes'){
22                 echo <<<EOM
23 <title>NAS Administration Page</title>
24 <link rel="stylesheet" href="style.css">
25 </head>
26 <body>
27 <center>
28 <b>Access is not allowed to this username.</b>
29 </body>
30 </html>
31 EOM;
32                 exit();
33         }
34 }
35
36
37 if ($clear_fields == 1 || ($do_it == 0 && $select_nas == 0))
38         $selected_nas = $readonly = '';
39 else
40         $readonly = 'readonly';
41
42 $link = @da_sql_pconnect($config);
43 if ($link){
44         if ($do_it == 1){
45                 $selected_nas = da_sql_escape_string($selected_nas);
46                 switch ($action) {
47                         case 'check_nas':
48                                 require_once('../lib/functions.php3');
49                                 if (!check_ip($selected_nas) && $selected_nas == gethostbyname($selected_nas))
50                                         $msg = "<b>The NAS name <font color=red>is not</font> valid</b><br>\n";
51                                 else
52                                         $msg = "<b>The NAS name <font color=green>is</font> valid</b><br>\n";
53                                 break;
54                         case 'del_nas':
55                                 $res = @da_sql_query($link,$config,
56                                 "DELETE FROM $config[sql_nas_table] WHERE nasname = '$selected_nas';");
57                                 if ($res){
58                                         $msg = "<b>NAS '$selected_nas' was deleted successfully</b><br>\n";
59                                         $selected_nas = '';
60                                 }
61                                 else
62                 $msg = "<b>Error deleting NAS '$selected_nas' " . da_sql_error($link,$config) . "</b><br>\n";
63                                 break;
64                         case 'add_nas':
65                                 if ($nasname == '' || $nassecret == '' || $nasshortname == '')
66                                         $msg = "<b>Error. Required fields are not set</b><br>\n";
67                                 else{
68                                         $nasshortname = da_sql_escape_string($nasshortname);
69                                         $nastype = da_sql_escape_string($nastype);
70                                         $nasportnum = da_sql_escape_string($nasportnum);
71                                         $nassecret = da_sql_escape_string($nassecret);
72                                         $nascommunity = da_sql_escape_string($nascommunity);
73                                         $nasdescription = da_sql_escape_string($nasdescription);
74                                         $nasname = da_sql_escape_string($nasname);
75
76                                         $res = @da_sql_query($link,$config,
77                                         "INSERT INTO $config[sql_nas_table]
78                                         (nasname,shortname,type,ports,secret,community,description)
79                                         VALUES ('$nasname','$nasshortname', '$nastype','$nasportnum',
80                                         '$nassecret','$nascommunity','$nasdescription');");
81                                         if ($res){
82                                                 $msg = "<b>NAS '$nasname' was added successfully</b><br>\n";
83                                                 $selected_nas = $nasname;
84                                         }
85                                         else
86                         $msg = "<b>Error adding NAS '$nasname' " . da_sql_error($link,$config) . "</b><br>\n";
87                                 }
88                                 break;
89                         case 'change_nas':
90                                 if ($nassecret == '' || $nasshortname == '')
91                                         $msg = "<b>Error. Required fields are not set</b><br>\n";
92                                 else{
93                                         $nasshortname = da_sql_escape_string($nasshortname);
94                                         $nastype = da_sql_escape_string($nastype);
95                                         $nasportnum = da_sql_escape_string($nasportnum);
96                                         $nassecret = da_sql_escape_string($nassecret);
97                                         $nascommunity = da_sql_escape_string($nascommunity);
98                                         $nasdescription = da_sql_escape_string($nasdescription);
99                                         $nasname = da_sql_escape_string($nasname);
100
101                                         $res = @da_sql_query($link,$config,
102                                         "UPDATE $config[sql_nas_table] SET
103                                         shortname = '$nasshortname',
104                                         type = '$nastype',
105                                         ports = '$nasportnum',
106                                         secret = '$nassecret',
107                                         community = '$nascommunity',
108                                         description = '$nasdescription' WHERE nasname = '$nasname';");
109                                         if ($res)
110                                                 $msg = "<b>NAS '$nasname' was updated successfully</b><br>\n";
111                                         else
112                         $msg = "<b>Error updating NAS '$selected_nas' " . da_sql_error($link,$config) . "</b><br>\n";
113                                 }
114                                 break;
115                 }
116         }
117         $search = @da_sql_query($link,$config,
118         "SELECT * FROM $config[sql_nas_table] ORDER BY nasname;");
119         if ($search){
120                 $num = 0;
121                 unset($my_nas_list);
122                 while($row = @da_sql_fetch_array($search,$config)){
123                         $my_nas_name = $row['nasname'];
124                         if ($my_nas_name != ''){
125                                 $num++;
126                                 $my_nas_list[$my_nas_name]['name'] = $my_nas_name;
127                                 $my_nas_list[$my_nas_name]['shortname'] = $row['shortname'];
128                                 $my_nas_list[$my_nas_name]['type'] = $row['type'];
129                                 if ($clear_fields == 0 && $selected_nas == $my_nas_name){
130                                         $selected[$my_nas_name] = 'selected';
131                                         $selected[$my_nas_list[$my_nas_name]['type']] = 'selected';
132                                 }
133                                 $my_nas_list[$my_nas_name]['ports'] = $row['ports'];
134                                 $my_nas_list[$my_nas_name]['secret'] = $row['secret'];
135                                 $my_nas_list[$my_nas_name]['community'] = $row['community'];
136                                 $my_nas_list[$my_nas_name]['description'] = $row['description'];
137                         }
138                 }
139         }
140 }
141 else
142         echo "<b>Could not connect to SQL database</b><br>\n";
143
144
145 ?>
146
147 <html>
148 <head>
149 <title>NAS Administration Page</title>
150 <link rel="stylesheet" href="style.css">
151 </head>
152 <body>
153 <center>
154 <table border=0 width=550 cellpadding=0 cellspacing=0>
155 <tr valign=top>
156 <td align=center><img src="images/title2.gif"></td>
157 </tr>
158 </table>
159 <table border=0 width=400 cellpadding=0 cellspacing=2>
160
161 </table>
162 <br>
163 <table border=0 width=540 cellpadding=1 cellspacing=1>
164 <tr valign=top>
165 <td width=340></td>
166 <td bgcolor="black" width=200>
167         <table border=0 width=100% cellpadding=2 cellspacing=0>
168         <tr bgcolor="#907030" align=right valign=top><th>
169         <font color="white">NAS Administration</font>&nbsp;
170         </th></tr>
171         </table>
172 </td></tr>
173 <tr bgcolor="black" valign=top><td colspan=2>
174         <table border=0 width=100% cellpadding=12 cellspacing=0 bgcolor="#ffffd0" valign=top>
175         <tr><td>
176
177    <form method=post>
178       <input type=hidden name=do_it value=0>
179       <input type=hidden name=clear_fields value=0>
180       <input type=hidden name=select_nas value=0>
181 <?php echo $msg?>
182         <table border=1 bordercolordark=#ffffe0 bordercolorlight=#000000 width=100% cellpadding=2 cellspacing=0 bgcolor="#ffffe0" valign=top>
183 <tr>
184 <td align=right bgcolor="#d0ddb0">
185 NAS List
186 </td>
187 <td>
188 <select name=selected_nas size=5 OnChange="this.form.select_nas.value=1;this.form.submit()"> 
189 <?php
190 foreach ($my_nas_list as $member){
191         $name = $member[name];
192         echo "<option $selected[$name] value=\"$name\">$name\n";
193 }
194 ?>
195 </select>
196 </td>
197 </tr>
198 <?php
199 $array = $my_nas_list[$selected_nas];
200 echo <<<EOM
201 <tr>
202 <td align=right bgcolor="#d0ddb0">
203 NAS Name 
204 </td>
205 <td>
206 <input type=text name=nasname size=40 value="$array[name]" $readonly>
207 </td></tr>
208 <tr>
209 <td align=right bgcolor="#d0ddb0">
210 NAS Short Name
211 </td>
212 <td>
213 <input type=text name=nasshortname size=40 value="$array[shortname]">
214 </td></tr>
215 <tr>
216 <td align=right bgcolor="#d0ddb0">
217 NAS Type
218 </td>
219 <td>
220 <select name=nastype size=1>
221 <option $selected[cisco] value="cisco">cisco
222 <option $selected[computone] value="computone">computone
223 <option $selected[livingston] value="livingston">livingston
224 <option $selected[max40xx] value="max40xx">max40xx
225 <option $selected[multitech] value="multitech">multitech
226 <option $selected[netserver] value="netserver">netserver
227 <option $selected[pathras] value="pathras">pathras
228 <option $selected[patton] value="patton">patton
229 <option $selected[portslave] value="portslave">portslave
230 <option $selected[tc] value="tc">tc
231 <option $selected[usrhiper] value="usrhiper">usrhiper
232 <option $selected[other] value="other">other
233 </select>
234 </td></tr>
235 <tr>
236 <td align=right bgcolor="#d0ddb0">
237 NAS Ports Number
238 </td>
239 <td>
240 <input type=text name=nasportnum size=40 value="$array[ports]">
241 </td></tr>
242 <tr>
243 <td align=right bgcolor="#d0ddb0">
244 NAS Secret
245 </td>
246 <td>
247 <input type=text name=nassecret size=40 value="$array[secret]">
248 </td></tr>
249 <tr>
250 <td align=right bgcolor="#d0ddb0">
251 NAS SNMP community
252 </td>
253 <td>
254 <input type=text name=nascommunity size=40 value="$array[community]">
255 </td></tr>
256 <tr>
257 <td align=right bgcolor="#d0ddb0">
258 NAS Description
259 </td>
260 <td>
261 <input type=text name=nasdescription size=40 value="$array[description]">
262 </td></tr>
263 EOM;
264 ?>
265         </table>
266 <br>
267 <select name=action size=1>
268 <?php
269 if ($clear_fields == 1 || ($do_it == 0 && $select_nas == 0))
270         echo "<option value=\"add_nas\">Add NAS\n";
271 if ($clear_fields == 0)
272         echo <<<EOM
273 <option value="change_nas">Change NAS Info
274 <option value="del_nas">Delete Selected NAS
275 <option value="check_nas">Check NAS validity
276 EOM;
277 ?>
278 </select>
279 <input type=submit class=button value="Perform Action" OnClick="this.form.do_it.value=1">
280 <br><br>
281 <input type=submit class=button value="Clear Fields" OnClick="this.form.clear_fields.value=1">
282 </form>
283 </td></tr>
284 </table>
285 </tr>
286 </table>
287 </body>
288 </html>