ldap: add external_id's case-insensitive comparison (#27147)
This commit is contained in:
parent
ff10b27cb0
commit
d90e060069
|
@ -837,7 +837,7 @@ 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=external_id, userexternalid__source=block['realm'])
|
||||
userexternalid__external_id__iexact=external_id, userexternalid__source=block['realm'])
|
||||
except User.DoesNotExist:
|
||||
pass
|
||||
|
||||
|
|
|
@ -404,6 +404,18 @@ def test_get_users(slapd, settings):
|
|||
assert save.call_count == 3
|
||||
assert bulk_create.call_count == 1
|
||||
|
||||
# uppercase user uid in the directory and check that no new user is created
|
||||
conn = slapd.get_connection_admin()
|
||||
ldif = [(ldap.MOD_REPLACE, 'uid', UID.upper())]
|
||||
conn.modify_s(DN, ldif)
|
||||
save.reset_mock()
|
||||
bulk_create.reset_mock()
|
||||
users = list(ldap_backend.LDAPBackend.get_users())
|
||||
assert len(users) == 101
|
||||
assert User.objects.count() == 101
|
||||
assert save.call_count == 0
|
||||
assert bulk_create.call_count == 0
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_set_mandatory_roles(slapd, settings):
|
||||
|
|
Loading…
Reference in New Issue