summaryrefslogtreecommitdiff
path: root/program/lib/Roundcube/rcube_ldap_generic.php
diff options
context:
space:
mode:
authorThomas Bruederli <bruederli@kolabsys.com>2015-03-03 14:53:02 +0100
committerThomas Bruederli <bruederli@kolabsys.com>2015-03-03 14:53:02 +0100
commit36ee2c8427298fc8735fe547d11c7e203fb3ca99 (patch)
tree5bfdf6b6633600355df25caf1ceab996716d4d61 /program/lib/Roundcube/rcube_ldap_generic.php
parent83eeec6c0665ff18881ba05743b7368f9fb1c2f7 (diff)
Improve LDAP search by ignoring words order in fuzzy substring matching mode
Diffstat (limited to 'program/lib/Roundcube/rcube_ldap_generic.php')
-rw-r--r--program/lib/Roundcube/rcube_ldap_generic.php5
1 files changed, 3 insertions, 2 deletions
diff --git a/program/lib/Roundcube/rcube_ldap_generic.php b/program/lib/Roundcube/rcube_ldap_generic.php
index 40adbedbe..abe16760d 100644
--- a/program/lib/Roundcube/rcube_ldap_generic.php
+++ b/program/lib/Roundcube/rcube_ldap_generic.php
@@ -336,7 +336,8 @@ class rcube_ldap_generic extends Net_LDAP3
}
$groups = array();
- $words = rcube_utils::tokenize_string($value, 1);
+ $value = str_replace('*', '', $value);
+ $words = $mode == 0 ? rcube_utils::tokenize_string($value, 1) : array($value);
// set wildcards
$wp = $ws = '';
@@ -354,7 +355,7 @@ class rcube_ldap_generic extends Net_LDAP3
$groups[] = '(|' . join('', $parts) . ')';
}
- return empty($groups) ? '' : '(&' . join('', $groups) . ')';
+ return count($groups) > 1 ? '(&' . join('', $groups) . ')' : join('', $groups);
}
}