PageRenderTime 49ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/dialup_admin/htdocs/nas_admin.php

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