From b444d5ca43d4c73f0491812295354b7b7254fa69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 31 Oct 2018 10:17:31 +0100 Subject: [PATCH] ldap: lookup users with exact case before going case-insensitive (#27697) --- src/authentic2/backends/ldap_backend.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/authentic2/backends/ldap_backend.py b/src/authentic2/backends/ldap_backend.py index 78f8c098..452882a9 100644 --- a/src/authentic2/backends/ldap_backend.py +++ b/src/authentic2/backends/ldap_backend.py @@ -837,9 +837,15 @@ class LDAPBackend(object): try: log.debug('lookup using external_id %r: %r', eid_tuple, external_id) return LDAPUser.objects.prefetch_related('groups').get( - userexternalid__external_id__iexact=external_id, userexternalid__source=block['realm']) - except User.DoesNotExist: - pass + userexternalid__external_id=external_id, + userexternalid__source=block['realm']) + except LDAPUser.DoesNotExist: + try: + return LDAPUser.objects.prefetch_related('groups').get( + userexternalid__external_id__iexact=external_id, + userexternalid__source=block['realm']) + except LDAPUser.DoesNotExist: + pass def lookup_existing_user(self, username, block, attributes): for lookup_type in block['lookups']: -- 2.19.1