<packagegui> <name>doormanusers</name> <title>Doorman: Users</title> <menu> <name>Doorman</name> <tooltiptext>Modify doormand settings and users.</tooltiptext> <section>Services</section> <configfile>doorman.xml</configfile> <url>/pkg_edit.php?xml=doorman.xml&id=0</url> </menu> <tabs> <tab> <text>Settings</text> <url>/pkg_edit.php?xml=doorman.xml&id=0</url> </tab> <tab> <text>Users</text> <url>/pkg.php?xml=doormanusers.xml</url> <active/> </tab> </tabs> <configpath>installedpackages->package->$packagename->configuration->settings</configpath> <adddeleteeditpagefields> <columnitem> <fielddescr>Username</fielddescr> <fieldname>username</fieldname> </columnitem> <columnitem> <fielddescr>Ports</fielddescr> <fieldname>ports</fieldname> </columnitem> <columnitem> <fielddescr>Addresses</fielddescr> <fieldname>addresses</fieldname> </columnitem> <columnitem> <fielddescr>Description</fielddescr> <fieldname>description</fieldname> </columnitem> </adddeleteeditpagefields> <fields> <field> <fielddescr>Username</fielddescr> <fieldname>username</fieldname> <description>Enter the username here. This may be up to 32 characters in length.</description> <type>input</type> </field> <field> <fielddescr>Password</fielddescr> <fieldname>password</fieldname> <description>Enter the password here. This may be up to 64 characters in length.</description> <type>password</type> </field> <field> <fielddescr>Allowed ports</fielddescr> <fieldname>ports</fieldname> <description>Enter a whitespace-delimited list of the ports or service names *to* which this user may connect.</description> <type>input</type> </field> <field> <fielddescr>Allowed addresses</fielddescr> <fieldname>addresses</fieldname> <description>Enter a whitespace-delimited list of the IP addresses or hostnames *from* which this user may connect. Addresses may be unique or expressed as ranges using CIDR notation.</description> <type>input</type> </field> <field> <fielddescr>Description</fielddescr> <fieldname>description</fieldname> <description>Enter a description for this user here.</description> <type>input</type> </field> </fields> <custom_php_global_functions> function sync_package_doorman_users() { if ($_POST == "") $_POST = $config['installedpackages']['doormanusers']['config']; conf_mount_rw(); config_lock(); global $config; $fout = fopen("/usr/local/etc/doormand/guestlist","w"); fwrite($fout, "# This file was automatically generated by the pfSense\n# package management system.\n\n"); if($config['installedpackages']['doormanusers'] != "") { foreach($config['installedpackages']['doormanusers']['config'] as $rowhelper) { fwrite($fout, $rowhelper['username'] . "\t" . $rowhelper['password'] . "\n\t" . $rowhelper['ports'] . "\n\t" . $rowhelper['addresses'] . "\n\n"); } } fclose($fout); restart_service("doorman"); conf_mount_ro(); config_unlock(); } </custom_php_global_functions> <custom_add_php_command> sync_package_doorman_users(); </custom_add_php_command> </packagegui>