--- moodle/auth/ldap/lib.php 2006-10-26 04:18:43.000000000 +0200 +++ moodle/auth/ldap/lib.php 2006-12-06 22:48:42.000000000 +0100 @@ -91,8 +91,30 @@ * @return array */ function auth_get_userinfo($username){ + return password_auth_get_userinfo($username); +} + +function password_auth_get_userinfo($username, $password='') { global $CFG; $ldapconnection=auth_ldap_connect(); + + // if we got a password, then try to bind as the given user + if (($password != '') && ($CFG->ldap_bind_user == 'moodle')) { + if ($ldapconnection) { + $ldap_user_dn = auth_ldap_find_userdn($ldapconnection, $username); + } + + //if ldap_user_dn is empty, user does not exist + if(!$ldap_user_dn) { + ldap_close($ldapconnection); + return false; + } + + // Try to bind with current username and password + ldap_close($ldapconnection); + $ldapconnection=auth_ldap_connect($ldap_user_dn, $password); + } + $config = (array)$CFG; $attrmap = auth_ldap_attributes();