diff options
author | Scott Ullrich <sullrich@pfsense.org> | 2007-12-30 23:18:36 +0000 |
---|---|---|
committer | Scott Ullrich <sullrich@pfsense.org> | 2007-12-30 23:18:36 +0000 |
commit | 4848bc7529bc24da71d914256d50b04748d77b13 (patch) | |
tree | c71b18f101f7533bd63ef642f690fdb1496f7655 /usr | |
parent | ffe2f910c4e3fb005e91f4f04357b68ecae8acc9 (diff) | |
download | pfsense-4848bc7529bc24da71d914256d50b04748d77b13.zip pfsense-4848bc7529bc24da71d914256d50b04748d77b13.tar.gz |
Add LDAP test functions to verify that the LDAP settings are correct.
Return the OU's and show to the user after test completion.
Diffstat (limited to 'usr')
-rwxr-xr-x | usr/local/www/system_usermanager_settings.php | 27 | ||||
-rwxr-xr-x | usr/local/www/system_usermanager_settings_test.php | 73 |
2 files changed, 90 insertions, 10 deletions
diff --git a/usr/local/www/system_usermanager_settings.php b/usr/local/www/system_usermanager_settings.php index 6b93754..c34bd8e 100755 --- a/usr/local/www/system_usermanager_settings.php +++ b/usr/local/www/system_usermanager_settings.php @@ -31,6 +31,9 @@ POSSIBILITY OF SUCH DAMAGE. */ +if($_POST['savetest']) + $save_and_test = true; + require("guiconfig.inc"); $pconfig['session_timeout'] = &$config['system']['webgui']['session_timeout']; @@ -46,7 +49,7 @@ $pgtitle = array("System","User manager settings"); if ($_POST) { unset($input_errors); - + /* input validation */ $reqdfields = explode(" ", "session_timeout"); $reqdfieldsn = explode(",", "Session Timeout"); @@ -63,12 +66,6 @@ if ($_POST) { if ($timeout > 999) $input_errors[] = gettext("Session timeout must be an integer with value 1 or greater."); - /* if this is an AJAX caller then handle via JSON */ - if (isAjax() && is_array($input_errors)) { - input_errors2Ajax($input_errors); - exit; - } - if (!$input_errors) { @@ -112,7 +109,6 @@ if ($_POST) { $retval = system_password_configure(); sync_webgui_passwords(); - pfSenseHeader("system_usermanager_settings.php"); } } @@ -123,6 +119,16 @@ include("head.inc"); <?php include("fbegin.inc");?> <?php if ($input_errors) print_input_errors($input_errors);?> <?php if ($savemsg) print_info_box($savemsg);?> + +<?php + if($save_and_test) { + echo "<script language='javascript'>\n"; + echo "myRef = window.open('system_usermanager_settings_test.php','mywin', "; + echo "'left=20,top=20,width=500,height=500,toolbar=1,resizable=0');\n"; + echo "</script>\n"; + } +?> + <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="tabnavtbl"> @@ -199,7 +205,9 @@ if(!$pconfig['backend']) </tr> <tr> <td width="22%" valign="top"> </td> - <td width="78%"> <input id="submit" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /> + <td width="78%"> + <input id="submit" name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>" /> + <input id="savetest" name="savetest" type="submit" class="formbtn" value="<?=gettext("Save and Test");?>" /> </td> </tr> </table> @@ -208,7 +216,6 @@ if(!$pconfig['backend']) </td> </tr> </table> - <?php include("fend.inc");?> </body> </html> diff --git a/usr/local/www/system_usermanager_settings_test.php b/usr/local/www/system_usermanager_settings_test.php new file mode 100755 index 0000000..2e11c21 --- /dev/null +++ b/usr/local/www/system_usermanager_settings_test.php @@ -0,0 +1,73 @@ +<?php +/* $Id$ */ +/* + part of pfSense (http://www.pfsense.org/) + + Copyright (C) 2007 Scott Ullrich <sullrich@gmail.com> + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ + +require("guiconfig.inc"); + +$ldapserver = $config['system']['webgui']['ldapserver']; +$ldapbindun = $config['system']['webgui']['ldapbindun']; +$ldapbindpw = $config['system']['webgui']['ldapbindpw']; + +$ldapfilter = $config['system']['webgui']['ldapfilter']; + +echo "Testing pfSense LDAP settings... One moment please...<p/>"; + +echo "<table>"; + +echo "<tr><td>Attempting connection to {$ldapserver}</td><td>"; +if(ldap_test_connection()) + echo "<td><font color=green>OK</td></tr>"; +else + echo "<td><font color=red>failed</td></tr>"; + +echo "<tr><td>Attempting bind to {$ldapserver}</td><td>"; +if(ldap_test_bind()) + echo "<td><font color=green>OK</td></tr>"; +else + echo "<td><font color=red>failed</td></tr>"; + +echo "<tr><td>Attempting to fetch Organizational Units from {$ldapserver}</td><td>"; +$ous = ldap_get_user_ous(true); +if(count($ous)>1) + echo "<td><font color=green>OK</td></tr>"; +else + echo "<td><font color=red>failed</td></tr>"; + +echo "</table><p/>"; + +if(is_array($ous)) { + echo "Organization units found:<p/>"; + echo "<table border='1'>"; + foreach($ous as $ou) { + echo "<tr><td>" . $ou . "</td></tr>"; + } + echo "</table>"; +} + +?>
\ No newline at end of file |