diff --git a/Products/LDAPMultiPlugins/CHANGES.txt b/Products/LDAPMultiPlugins/CHANGES.txt index a429ecb..b219e6f 100644 --- a/Products/LDAPMultiPlugins/CHANGES.txt +++ b/Products/LDAPMultiPlugins/CHANGES.txt @@ -5,6 +5,8 @@ To see earlier changes please see HISTORY.txt. 2.0 (unreleased) ---------------- - +- Bug: enumerateUsers returned undesired results if an exact match + was required since LDAP searches are not case sensitive. + (https://bugs.launchpad.net/bugs/585901) diff --git a/Products/LDAPMultiPlugins/LDAPMultiPlugin.py b/Products/LDAPMultiPlugins/LDAPMultiPlugin.py index 84724b2..7123460 100644 --- a/Products/LDAPMultiPlugins/LDAPMultiPlugin.py +++ b/Products/LDAPMultiPlugins/LDAPMultiPlugin.py @@ -188,8 +188,12 @@ class LDAPMultiPlugin(LDAPPluginBase): if exact_match and (id or login): if id: ldap_user = acl.getUserById(id) + if ldap_user is not None and ldap_user.getId() != id: + ldap_user = None elif login: ldap_user = acl.getUser(login) + if ldap_user is not None and ldap_user.getUserName() != login: + ldap_user = None if ldap_user is not None: qs = 'user_dn=%s' % quote_plus(ldap_user.getUserDN())