diff --git a/data/users.py b/data/users.py index 0f228786f..a50d462b9 100644 --- a/data/users.py +++ b/data/users.py @@ -69,17 +69,21 @@ class LDAPUsers(object): logger.debug('Conducting user search: %s under %s', query, user_search_dn) try: - user = conn.search_s(user_search_dn, ldap.SCOPE_SUBTREE, query.encode('utf-8')) + pairs = conn.search_s(user_search_dn, ldap.SCOPE_SUBTREE, query.encode('utf-8')) except ldap.LDAPError: logger.exception('LDAP search exception') return None - logger.debug('Found user data: %s', user) - if len(user) != 1: + logger.debug('Found matching pairs: %s', pairs) + if len(pairs) < 1: return None - logger.debug('Found user: %s', user[0]) - return user[0] + for pair in pairs: + if pair[0] is not None: + logger.debug('Found user: %s', pair) + return pair + + return None def verify_user(self, username_or_email, password): """ Verify the credentials with LDAP and if they are valid, create or update the user