]> git.mjollnir.org Git - moodle.git/commitdiff
Added IƱaki's patch from MDL-7233 for 1.9 - thanks!
authormoodler <moodler>
Mon, 21 May 2007 05:23:00 +0000 (05:23 +0000)
committermoodler <moodler>
Mon, 21 May 2007 05:23:00 +0000 (05:23 +0000)
auth/ldap/auth.php

index 8ec2bd7089bb8ac2d823a2c1b62ad6e665678cc6..67a62b44b6758908f9ad2a85d648fcbfb3228831 100644 (file)
@@ -1051,6 +1051,23 @@ class auth_plugin_ldap extends auth_plugin_base {
                 }
                 break;
 
+            case 'ad':
+                // Passwords in Active Directory must be encoded as Unicode
+                // strings (UCS-2 Little Endian format) and surrounded with
+                // double quotes. See http://support.microsoft.com/?kbid=269190
+                if (!function_exists('mb_convert_encoding')) {
+                    error_log ('You need the mbstring extension to change passwords in Active Directory');
+                    return false;
+                }
+                $extpassword = mb_convert_encoding('"'.$extpassword.'"', "UCS-2LE", $this->config->ldapencoding);
+                $result = ldap_modify($ldapconnection, $user_dn, array('unicodePwd' => $extpassword));
+                if (!$result) {
+                    error_log('LDAP Error in user_update_password(). Error code: ' 
+                              . ldap_errno($ldapconnection) . '; Error string : '
+                              . ldap_err2str(ldap_errno($ldapconnection)));
+                }
+                break;
+
             default:
                 $usedconnection = &$ldapconnection;
                 // send ldap the password in cleartext, it will md5 it itself