diff options
-rw-r--r-- | packages/freeradius.xml | 66 | ||||
-rw-r--r-- | packages/freeradiusclients.xml | 71 |
2 files changed, 137 insertions, 0 deletions
diff --git a/packages/freeradius.xml b/packages/freeradius.xml new file mode 100644 index 00000000..68d6eb38 --- /dev/null +++ b/packages/freeradius.xml @@ -0,0 +1,66 @@ +<packagegui> + <name>freeradius</name> + <menu> + <name>RADIUS Users</name> + <tooltiptext>Add, edit, and delete RADIUS users.</tooltiptext> + <section>Services</section> + <configfile>freeradius.xml</configfile> + </menu> + <menu> + <name>RADIUS Clients</name> + <tooltiptext>Add, edit, and delete RADIUS clients.</tooltiptext> + <section>Services</section> + <configfile>freeradiusclients.xml</configfile> + </menu> + <additional_files_needed> + <item>http://www.pfsense.com/packages/config/freeradiusclients.xml</item> + </additional_files_needed> + <configpath>installedpackages->package->$packagename->configuration->settings</configpath> + <adddeleteeditpagefields> + <columnitem> + <fielddescr>Username</fielddescr> + <fieldname>username</fieldname> + </columnitem> + <columnitem> + <fielddescr>Description</fielddescr> + <fieldname>description</fieldname> + </columnitem> + </adddeleteeditpagefields> + <fields> + <field> + <fielddescr>Username</fielddescr> + <fieldname>username</fieldname> + <description>Enter the username here</description> + <type>input</type> + </field> + <field> + <fielddescr>Password</fielddescr> + <fieldname>password</fieldname> + <description>Enter the password here</description> + <type>password</type> + </field> + <field> + <fielddescr>Username Description</fielddescr> + <fieldname>description</fieldname> + <description>Enter the description of the user here</description> + <type>input</type> + </field> + </fields> + <custom_php_command_before_form> + function sync_package() + { + global $config; + $fout = fopen("/usr/local/etc/raddb/users","w"); + if($config['installedpackages']['freeradius']['config'] != "") { + foreach($config['installedpackages']['freeradius']['config'] as $rowhelper) { + fwrite($fout, $rowhelper['username'] . " User-Password == \"" . $rowhelper['password'] . "\"\n"); + } + } + fclose($fout); + } + sync_package(); + </custom_php_command_before_form> + <custom_add_php_command> + sync_package(); + </custom_add_php_command> +</packagegui>
\ No newline at end of file diff --git a/packages/freeradiusclients.xml b/packages/freeradiusclients.xml new file mode 100644 index 00000000..61fbe5bc --- /dev/null +++ b/packages/freeradiusclients.xml @@ -0,0 +1,71 @@ +<packagegui> + <name>freeradiusclients</name> + <menu> + <name>RADIUS Clients</name> + <tooltiptext>Add, edit, and delete RADIUS clients.</tooltiptext> + <section>Services</section> + <configfile>freeradiusclients.xml</configfile> + </menu> + <configpath>installedpackages->package->$packagename->configuration->settings</configpath> + <adddeleteeditpagefields> + <columnitem> + <fielddescr>Client</fielddescr> + <fieldname>client</fieldname> + </columnitem> + <columnitem> + <fielddescr>Shortname</fielddescr> + <fieldname>shortname</fieldname> + </columnitem> + <columnitem> + <fielddescr>Description</fielddescr> + <fieldname>description</fieldname> + </columnitem> + </adddeleteeditpagefields> + <fields> + <field> + <fielddescr>Client</fielddescr> + <fieldname>client</fieldname> + <description>Enter the client's IP address here</description> + <type>input</type> + </field> + <field> + <fielddescr>Shortname</fielddescr> + <fieldname>shortname</fieldname> + <description>Enter the client's shortname here</description> + <type>input</type> + </field> + <fielddescr>Shared Secret</fielddescr> + <fieldname>sharedsecret</fieldname> + <description>Enter the client's shared secret here</description> + <type>password</type> + <field> + <fielddescr>Description</fielddescr> + <fieldname>description</fieldname> + <description>Enter the description of the user here</description> + <type>input</type> + </field> + </fields> + <custom_php_install_command> + global $config; + system("rm /usr/local/etc/raddb/clients*"); + $fout = fopen("/usr/local/etc/raddb/clients.conf","w"); + fwrite($fout, "client 127.0.0.1 {\n secret = pfsense\n shortname = localhost\n}\n\n"); + fclose($fout); + </custom_php_install_command> + <custom_php_command_before_form> + function sync_package() { + global $config; + $fout = fopen("/usr/local/etc/raddb/clients.conf","w"); + if($config['installedpackages']['freeradius']['config'] != "") { + foreach($config['installedpackages']['freeradius']['config'] as $rowhelper) { + fwrite($fout, "client " . $rowhelper['client'] . "{\n" . "secret = " . $rowhelper['sharedsecret'] . "\nshortname = " . $rowhelper['shortname'] . "\n}\n\n"); + } + } + fclose($fout); + } + sync_package(); + </custom_php_command_before_form> + <custom_add_php_command> + sync_package(); + </custom_add_php_command> +</packagegui>
\ No newline at end of file |