MDL-24666 sync_users.php can throw db exception on sites upgraded from 1.x
authorIñaki Arenaza <iarenaza@mondragon.edu>
Mon, 4 Jul 2011 19:38:53 +0000 (21:38 +0200)
committerIñaki Arenaza <iarenaza@mondragon.edu>
Mon, 4 Jul 2011 19:47:43 +0000 (21:47 +0200)
From 2.0 on we lowercase all the settings related to LDAP attributes
to cope with differences in LDAP servers when returning attribute
names as array indices (some lowercase them, some leave them as
specified in the query, some normalize them, etc.).

But we only lowercase them when saving the settings page. So on sites
that have been migrated from 1.x, it may happen that we still have
mixed-case attribute names. And this is fatal for the user_attribute
setting, as we might not detect it in the returned array from LDAP and
it will be empty (and the db layer throws and exception).

So we just make sure the attribute name is lowercased (and trimmed,
in case it's got some white space around it).

Signed-off-by: Iñaki Arenaza <iarenaza@mondragon.edu>
auth/ldap/auth.php

index 1fd3909..447b6a6 100644 (file)
@@ -1385,7 +1385,7 @@ class auth_plugin_ldap extends auth_plugin_base {
                 }
             }
         }
                 }
             }
         }
-        $moodleattributes['username'] = $this->config->user_attribute;
+        $moodleattributes['username'] = moodle_strtolower(trim($this->config->user_attribute));
         return $moodleattributes;
     }
 
         return $moodleattributes;
     }