From a8451603cf8f415ead1b1f037078e4302f433bde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki=20Arenaza?= Date: Tue, 4 Feb 2014 19:21:45 +0100 Subject: [PATCH] MDL-32724: LDAP Auth function user_update() returns true even if update has failed --- auth/ldap/auth.php | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/auth/ldap/auth.php b/auth/ldap/auth.php index c64eb77d930..0f74edeb061 100644 --- a/auth/ldap/auth.php +++ b/auth/ldap/auth.php @@ -1182,6 +1182,7 @@ class auth_plugin_ldap extends auth_plugin_base { return false; } + $success = true; $user_info_result = ldap_read($ldapconnection, $user_dn, '(objectClass=*)', $search_attribs); if ($user_info_result) { $user_entry = ldap_get_entries_moodle($ldapconnection, $user_info_result); @@ -1236,8 +1237,10 @@ class auth_plugin_ldap extends auth_plugin_base { if ($nuvalue !== $ldapvalue) { // This might fail due to schema validation if (@ldap_modify($ldapconnection, $user_dn, array($ldapkey => $nuvalue))) { + $changed = true; continue; } else { + $success = false; error_log($this->errorlogtag.get_string ('updateremfail', 'auth_ldap', array('errno'=>ldap_errno($ldapconnection), 'errstring'=>ldap_err2str(ldap_errno($ldapconnection)), @@ -1256,6 +1259,7 @@ class auth_plugin_ldap extends auth_plugin_base { $changed = true; continue; } else { + $success = false; error_log($this->errorlogtag.get_string ('updateremfail', 'auth_ldap', array('errno'=>ldap_errno($ldapconnection), 'errstring'=>ldap_err2str(ldap_errno($ldapconnection)), @@ -1273,6 +1277,7 @@ class auth_plugin_ldap extends auth_plugin_base { $changed = true; continue; } else { + $success = false; error_log($this->errorlogtag.get_string ('updateremfail', 'auth_ldap', array('errno'=>ldap_errno($ldapconnection), 'errstring'=>ldap_err2str(ldap_errno($ldapconnection)), @@ -1286,6 +1291,7 @@ class auth_plugin_ldap extends auth_plugin_base { } if ($ambiguous and !$changed) { + $success = false; error_log($this->errorlogtag.get_string ('updateremfailamb', 'auth_ldap', array('key'=>$key, 'ouvalue'=>$ouvalue, @@ -1295,12 +1301,11 @@ class auth_plugin_ldap extends auth_plugin_base { } } else { error_log($this->errorlogtag.get_string ('usernotfound', 'auth_ldap')); - $this->ldap_close(); - return false; + $success = false; } $this->ldap_close(); - return true; + return $success; }