From b765160fd51b1f3db88393daff0d3cc6700d0441 Mon Sep 17 00:00:00 2001 From: Thomas Bruederli <bruederli@kolabsys.com> Date: Tue, 05 May 2015 05:11:21 -0400 Subject: [PATCH] Improve LDAP search by ignoring words order in fuzzy substring matching mode --- program/lib/Roundcube/rcube_ldap_generic.php | 5 +++-- 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 40adbed..abe1676 100644 --- a/program/lib/Roundcube/rcube_ldap_generic.php +++ b/program/lib/Roundcube/rcube_ldap_generic.php @@ -336,7 +336,8 @@ } $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 @@ $groups[] = '(|' . join('', $parts) . ')'; } - return empty($groups) ? '' : '(&' . join('', $groups) . ')'; + return count($groups) > 1 ? '(&' . join('', $groups) . ')' : join('', $groups); } } -- Gitblit v1.9.1