From b8a0a101e5dbc20b8ed686b87dde55906d3b106a Mon Sep 17 00:00:00 2001 From: martinlanghoff Date: Thu, 25 Aug 2005 04:58:59 +0000 Subject: [PATCH] Merged from MOODLE_15_STABLE - auth/ldap: Fixed handling of multi-source field mapping. Now fields with non-empty values have precedence over empty fields, regardless of order. Fields will be set to empty only if all ldap source fields are empty. --- auth/ldap/lib.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/auth/ldap/lib.php b/auth/ldap/lib.php index 8bd3dd3a688..2ca2416bf57 100644 --- a/auth/ldap/lib.php +++ b/auth/ldap/lib.php @@ -124,15 +124,19 @@ function auth_get_userinfo($username){ if (!is_array($values)) { $values = array($values); } + $ldapval = NULL; foreach ($values as $value) { if(is_array($user_entry[0][strtolower($value)])) { - $result[$key]=addslashes(stripslashes(utf8_decode($user_entry[0][strtolower($value)][0]))); + $newval = addslashes(stripslashes(utf8_decode($user_entry[0][strtolower($value)][0]))); } else { - $result[$key] = addslashes(stripslashes(utf8_decode($user_entry[0][strtolower($value)]))); - + $newval = addslashes(stripslashes(utf8_decode($user_entry[0][strtolower($value)]))); } + if (!empty($newval)) { // favour ldap entries that are set + $ldapval = $newval; + } } + $result[$key] = $ldapval; } }