diff --git a/etc/inc/auth.inc b/etc/inc/auth.inc index 73c9a719d0..67b15661d0 100644 --- a/etc/inc/auth.inc +++ b/etc/inc/auth.inc @@ -608,7 +608,42 @@ function passwd_backed($username, $passwd) { return false; } -function ldap_get_user_ous() { +function ldap_test_connection() { + global $config, $g; + + $ldapserver = $config['system']['webgui']['ldapserver']; + $ldapbindun = $config['system']['webgui']['ldapbindun']; + $ldapbindpw = $config['system']['webgui']['ldapbindpw']; + + if (!($ldap = ldap_connect($ldapserver))) { + return false; + } + + return true; +} + +function ldap_test_bind() { + global $config, $g; + + $ldapserver = $config['system']['webgui']['ldapserver']; + $ldapbindun = $config['system']['webgui']['ldapbindun']; + $ldapbindpw = $config['system']['webgui']['ldapbindpw']; + + if (!($ldap = ldap_connect($ldapserver))) { + return false; + } + + ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0); + ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3); + + if (!($res = @ldap_bind($ldap, $ldapbindun, $ldapbindpw))) { + return false; + } + + return true; +} + +function ldap_get_user_ous($show_complete_ou=false) { global $config, $g; $ldapserver = $config['system']['webgui']['ldapserver']; @@ -640,11 +675,16 @@ function ldap_get_user_ous() { $ous = array(); foreach($info as $inf) { + if(!$show_complete_ou) { $inf_split = split(",", $inf['dn']); $ou = $inf_split[0]; $ou = str_replace("OU=","", $ou); - if($ou) - $ous[] = $ou; + } else { + if($inf) + $ou = $inf['dn']; + } + if($ou) + $ous[] = $ou; } return $ous; diff --git a/usr/local/www/system_usermanager_settings.php b/usr/local/www/system_usermanager_settings.php index 6b93754f9f..c34bd8ec54 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"); + +\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 "\n"; + } +?> +
| @@ -199,7 +205,9 @@ if(!$pconfig['backend']) | ||
| - | " /> + | + " /> + " /> |