Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

MDL-12323 MDL-4061 Don't connect to the LDAP server if update externa…

…l is not set for any field.
  • Loading branch information...
commit 8a60457e1305ad9c61133c3fa733180d1f0d5f49 1 parent 90dc0f3
iarenaza authored
Showing with 23 additions and 2 deletions.
  1. +23 −2 auth/ldap/auth.php
View
25 auth/ldap/auth.php
@@ -835,6 +835,21 @@ function user_update($olduser, $newuser) {
return true; // just change auth and skip update
}
+ $attrmap = $this->ldap_attributes();
+
+ // Before doing anything else, make sure really need to update anything
+ // in the external LDAP server.
+ $update_external = false;
+ foreach ($attrmap as $key => $ldapkeys) {
+ if (!empty($this->config->{'field_updateremote_'.$key})) {
+ $update_external = true;
+ break;
+ }
+ }
+ if (!$update_external) {
+ return true;
+ }
+
$textlib = textlib_get_instance();
$extoldusername = $textlib->convert($olduser->username, 'utf-8', $this->config->ldapencoding);
@@ -842,7 +857,6 @@ function user_update($olduser, $newuser) {
$search_attribs = array();
- $attrmap = $this->ldap_attributes();
foreach ($attrmap as $key => $values) {
if (!is_array($values)) {
$values = array($values);
@@ -863,9 +877,16 @@ function user_update($olduser, $newuser) {
$user_entry = $this->ldap_get_entries($ldapconnection, $user_info_result);
if (empty($user_entry)) {
+ $error = 'ldap: Could not find user while updating externally. '.
+ 'Details follow: search base: \''.$user_dn.'\'; search filter: \''.
+ $this->config->objectclass.'\'; search attributes: ';
+ foreach ($search_attribs as $attrib) {
+ $error .= $attrib.' ';
+ }
+ error_log($error);
return false; // old user not found!
} else if (count($user_entry) > 1) {
- trigger_error("ldap: Strange! More than one user record found in ldap. Only using the first one.");
+ error_log('ldap: Strange! More than one user record found in ldap. Only using the first one.');
return false;
}
$user_entry = $user_entry[0];
Please sign in to comment.
Something went wrong with that request. Please try again.