lib/api lib/Auth lib/functions.php

Aleksander Machniak machniak at kolabsys.com
Tue Jan 7 12:09:13 CET 2014


 lib/Auth/LDAP.php                        |   20 +-------------------
 lib/api/kolab_api_service_form_value.php |   11 ++++++-----
 lib/functions.php                        |   18 ------------------
 3 files changed, 7 insertions(+), 42 deletions(-)

New commits:
commit caea493be85751083d177016f83faca7759c56b0
Author: Aleksander Machniak <alec at alec.pl>
Date:   Tue Jan 7 12:08:20 2014 +0100

    Revert commit 109ad37d making email addresses case-insensitive

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;
-}




More information about the commits mailing list