diff options
author | Aleksander Machniak <alec@alec.pl> | 2014-01-07 12:08:20 +0100 |
---|---|---|
committer | Aleksander Machniak <alec@alec.pl> | 2014-01-07 12:08:20 +0100 |
commit | caea493be85751083d177016f83faca7759c56b0 (patch) | |
tree | c5f174eede616625020d35663eae4952f40b2897 | |
parent | 2eb8ab1fa6caf11cc505c4fd63a50b465a02ea84 (diff) | |
download | webadmin-caea493be85751083d177016f83faca7759c56b0.tar.gz |
Revert commit 109ad37d making email addresses case-insensitive
-rw-r--r-- | lib/Auth/LDAP.php | 20 | ||||
-rw-r--r-- | lib/api/kolab_api_service_form_value.php | 11 | ||||
-rw-r--r-- | lib/functions.php | 18 |
3 files changed, 7 insertions, 42 deletions
diff --git a/lib/Auth/LDAP.php b/lib/Auth/LDAP.php index 8ef191e..5850672 100644 --- a/lib/Auth/LDAP.php +++ b/lib/Auth/LDAP.php @@ -594,25 +594,7 @@ class LDAP extends Net_LDAP3 { $result = $this->search_entries($this->config_get('root_dn'), '(objectclass=*)', 'sub', null, $search); if ($result && $result->count() > 0) { - $result = $result->entries(true); - - // LDAP searches are case-insensitive, post-process result - // with correct character case handling - foreach ($result as $key => $user) { - foreach ($user as $attr => $list) { - foreach ((array) $list as $addr) { - if (compare_email($address, $addr)) { - continue 3; - } - } - } - - unset($result[$key]); - } - - reset($result); - - return $result; + return $result->entries(true); } return false; diff --git a/lib/api/kolab_api_service_form_value.php b/lib/api/kolab_api_service_form_value.php index ffc3750..2e82342 100644 --- a/lib/api/kolab_api_service_form_value.php +++ b/lib/api/kolab_api_service_form_value.php @@ -1084,14 +1084,15 @@ class kolab_api_service_form_value extends kolab_api_service // from e.g. adding primary mail address into aliases list $found = false; $user = $users[$user_found_dn]; + $addr = mb_strtolower($addr); + unset($user[$attr_name]); foreach ($user as $attr => $list) { - foreach ((array) $list as $email) { - if (compare_email($addr, $email)) { - $found = true; - break 2; - } + $list = array_map('mb_strtolower', (array) $list); + if (in_array($addr, $list)) { + $found = true; + break; } } diff --git a/lib/functions.php b/lib/functions.php index fd5aa4a..016f1f3 100644 --- a/lib/functions.php +++ b/lib/functions.php @@ -131,21 +131,3 @@ function timer($time = null, $label = '') } return $now; } - -/** - * Compare two email addresses with correct character-case handling - * i.e. local part is case-sensitive, domain part is not - */ -function compare_email($email1, $email2) -{ - $email1 = explode('@', $email1); - $email2 = explode('@', $email2); - - $domain1 = array_pop($email1); - $domain2 = array_pop($email2); - - $email1 = implode('@', $email1) . '@' . mb_strtolower($domain1); - $email2 = implode('@', $email2) . '@' . mb_strtolower($domain2); - - return $email1 === $email2; -} |