From e51002a3cc2a2671253738d95c182d597dda5a77 Mon Sep 17 00:00:00 2001 From: kkalev Date: Fri, 16 Apr 2004 15:03:12 +0000 Subject: [PATCH] Add a nas administration page for sql based clients --- dialup_admin/Changelog | 1 + dialup_admin/conf/admin.conf | 3 +- dialup_admin/htdocs/nas_admin.php3 | 253 +++++++++++++++++++++++++++++++++++++ 3 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 dialup_admin/htdocs/nas_admin.php3 diff --git a/dialup_admin/Changelog b/dialup_admin/Changelog index b0e9e35..e832790 100644 --- a/dialup_admin/Changelog +++ b/dialup_admin/Changelog @@ -17,6 +17,7 @@ Ver 1.70: protect ourselves from sql injection. * Use the ldap_userdn directive where applicable in the functions.php3 file * Add an sql_xlat function +* Add a nas administration page for sql based clients TODO: Check out the sql queries in lin/sql for sql injection. diff --git a/dialup_admin/conf/admin.conf b/dialup_admin/conf/admin.conf index c443b21..2062d0b 100644 --- a/dialup_admin/conf/admin.conf +++ b/dialup_admin/conf/admin.conf @@ -230,6 +230,7 @@ sql_groupcheck_table: radgroupcheck sql_groupreply_table: radgroupreply sql_usergroup_table: usergroup sql_total_accounting_table: totacct +sql_nas_table: nas # # This variable is used by the scripts in the bin folder # It should contain the path to the sql binary used to run @@ -246,7 +247,7 @@ general_snmpget_command: /usr/local/bin/snmpget # # Uncomment to enable sql debug # -#sql_debug: true +sql_debug: true # # If set to yes then the HTTP credentials (http authentication) # will be used to connect to the sql server instead of sql_username diff --git a/dialup_admin/htdocs/nas_admin.php3 b/dialup_admin/htdocs/nas_admin.php3 new file mode 100644 index 0000000..3378ff6 --- /dev/null +++ b/dialup_admin/htdocs/nas_admin.php3 @@ -0,0 +1,253 @@ +NAS Administration Page + + + +
+Could not include SQL library functions. Aborting + + +EOM; + exit(); +} + +if ($clear_fields == 1) + $selected_nas = $readonly = ''; +else + $readonly = 'readonly'; + +$link = @da_sql_pconnect($config); +if ($link){ + if ($do_it == 1){ + $selected_nas = da_sql_escape_string($selected_nas); + switch ($action) { + case 'check_nas': + if ($selected_nas == gethostbyname($selected_nas)) + $msg = "The NAS name is not valid
\n"; + else + $msg = "The NAS name is valid
\n"; + break; + case 'del_nas': + $res = @da_sql_query($link,$config, + "DELETE FROM $config[sql_nas_table] WHERE nasname = '$selected_nas';"); + if ($res){ + $msg = "NAS '$selected_nas' was deleted successfully
\n"; + $selected_nas = ''; + } + else + $msg = "Error deleting NAS '$selected_nas' " . da_sql_error($link,$config) . "
\n"; + break; + case 'add_nas': + if ($nasname == '' || $nassecret == '' || $nasshortname == '') + $msg = "Error. Required fields are not set
\n"; + else{ + $res = @da_sql_query($link,$config, + "INSERT INTO $config[sql_nas_table] + (nasname,shortname,type,ports,secret,community,description) + VALUES ('$nasname','$nasshortname', '$nastype','$nasportnum', + '$nassecret','$nascommunity','$nasdescription');"); + if ($res){ + $msg = "NAS '$nasname' was added successfully
\n"; + $selected_nas = $nasname; + } + else + $msg = "Error adding NAS '$nasname' " . da_sql_error($link,$config) . "
\n"; + } + break; + case 'change_nas': + if ($nassecret == '' || $nasshortname == '') + $msg = "Error. Required fields are not set
\n"; + else{ + $res = @da_sql_query($link,$config, + "UPDATE $config[sql_nas_table] SET + shortname = '$nasshortname', + type = '$nastype', + ports = '$nasportnum', + secret = '$nassecret', + community = '$nascommunity', + description = '$nasdescription' WHERE nasname = '$nasname';"); + if ($res) + $msg = "NAS '$nasname' was updated successfully
\n"; + else + $msg = "Error updating NAS '$selected_nas' " . da_sql_error($link,$config) . "
\n"; + } + break; + } + } + $search = @da_sql_query($link,$config, + "SELECT * FROM $config[sql_nas_table] ORDER BY nasname;"); + if ($search){ + $num = 0; + unset($nas_list); + while($row = @da_sql_fetch_array($search,$config)){ + $my_nas_name = $row['nasname']; + if ($my_nas_name != ''){ + $num++; + if ($clear_fields == 0 && $selected_nas == $my_nas_name) + $selected[$my_nas_name] = 'selected'; + $nas_list[$my_nas_name]['name'] = $my_nas_name; + $nas_list[$my_nas_name]['shortname'] = $row['shortname']; + $nas_list[$my_nas_name]['type'] = $row['type']; + $selected[$nas_list[$my_nas_name]['type']] = 'selected'; + $nas_list[$my_nas_name]['ports'] = $row['ports']; + $nas_list[$my_nas_name]['secret'] = $row['secret']; + $nas_list[$my_nas_name]['community'] = $row['community']; + $nas_list[$my_nas_name]['description'] = $row['description']; + } + } + } +} +else + echo "Could not connect to SQL database
\n"; + + +?> + + + +NAS Administration Page + + + +
+ + + + +
+ + +
+
+ + + + + +
+ + +
+ NAS Administration  +
+
+ + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +EOM; +?> +
+NAS List + + +
+NAS Name + + +
+NAS Short Name + + +
+NAS Type + + +
+NAS Ports Number + + +
+NAS Secret + + +
+NAS SNMP community + + +
+NAS Description + + +
+
+ + +

+ +
+
+
+ + -- 2.1.4