]> git.mjollnir.org Git - moodle.git/commitdiff
auth/ldap: MDL-9405 sync_users() can create duplicated users
authoriarenaza <iarenaza>
Fri, 26 Dec 2008 16:01:30 +0000 (16:01 +0000)
committeriarenaza <iarenaza>
Fri, 26 Dec 2008 16:01:30 +0000 (16:01 +0000)
Merged from MOODLE_18_STABLE

If we are using auth_ldap_sync_users.php to synchronize our users, and we
have a database which is case-sensitive when doing comparisons (Postgres and
Oracle at least), and any of our users has the vale of the username attribute
in mixed-case (like 'John Smith'), we get duplicated users.

This is because we don't make sure the username attribute value is 'lowercased'
after we retrive it from the LDAP server and before we insert it into the
database.

auth/ldap/auth.php

index c2f674c64d25da0ba5d9e55f39beefce474082be..35cda41623670233de023e442585f247e9c9b243 100644 (file)
@@ -795,6 +795,9 @@ class auth_plugin_ldap extends auth_plugin_base {
                 $user->confirmed  = 1;
                 $user->auth       = 'ldap';
                 $user->mnethostid = $CFG->mnet_localhost_id;
+                // get_userinfo_asobj() might have replaced $user->username with the value
+                // from the LDAP server (which can be mixed-case). Make sure it's lowercase
+                $user->username = trim(moodle_strtolower($user->username));
                 if (empty($user->lang)) {
                     $user->lang = $CFG->lang;
                 }