From 6c61ae6496e6e4a3e7dbd8ebcc0ad95db72231c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Freitag?= Date: Sat, 23 Mar 2024 20:51:04 +0100 Subject: [PATCH 1/4] Add new required config entries to readthedocs.yml --- .readthedocs.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index 95a27809..2646802c 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,5 +1,9 @@ --- version: 2 +build: + os: ubuntu-lts-latest + tools: + python: "3.12" python: install: - requirements: docs/requirements.txt From bfac940d99834b5de39c2d714f07b33b53737ff2 Mon Sep 17 00:00:00 2001 From: Almas Baktubayev Date: Tue, 26 Mar 2024 11:17:35 +0500 Subject: [PATCH 2/4] feature: adding support custom username field --- django_auth_ldap/backend.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_auth_ldap/backend.py b/django_auth_ldap/backend.py index fc37ef23..b1231f49 100644 --- a/django_auth_ldap/backend.py +++ b/django_auth_ldap/backend.py @@ -141,7 +141,7 @@ def get_user_model(self): def authenticate(self, request, username=None, password=None, **kwargs): if username is None: - return None + username = kwargs.get(self.get_user_model().USERNAME_FIELD) if password or self.settings.PERMIT_EMPTY_PASSWORD: ldap_user = _LDAPUser(self, username=username.strip(), request=request) From 6b7797f41f40c9efb11173817a4d0dc39b64e565 Mon Sep 17 00:00:00 2001 From: Almas Baktubayev Date: Thu, 28 Mar 2024 09:52:09 +0500 Subject: [PATCH 3/4] fix: logic for current tests --- django_auth_ldap/backend.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_auth_ldap/backend.py b/django_auth_ldap/backend.py index b1231f49..17c5e0c9 100644 --- a/django_auth_ldap/backend.py +++ b/django_auth_ldap/backend.py @@ -140,8 +140,9 @@ def get_user_model(self): # def authenticate(self, request, username=None, password=None, **kwargs): + username = kwargs.get(self.get_user_model().USERNAME_FIELD, username) if username is None: - username = kwargs.get(self.get_user_model().USERNAME_FIELD) + return None if password or self.settings.PERMIT_EMPTY_PASSWORD: ldap_user = _LDAPUser(self, username=username.strip(), request=request) From aa04ca5ac80ce3b3e7abbbcf860d684460907937 Mon Sep 17 00:00:00 2001 From: Almas Baktubayev Date: Thu, 28 Mar 2024 11:56:44 +0500 Subject: [PATCH 4/4] test: added check for USERNAME_FIELD --- tests/tests.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/tests.py b/tests/tests.py index 326bcabc..79646833 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -274,6 +274,17 @@ def test_deepcopy(self): user = authenticate(username="Alice", password="password") user = deepcopy(user) + @_override_settings(AUTH_USER_MODEL="tests.TestUser") + def test_auth_custom_field(self): + self._init_settings( + USER_DN_TEMPLATE="cn=%(user)s,ou=people,o=test", + USER_ATTR_MAP={"identifier": "cn"}, + ) + charlie = TestUser.objects.create(identifier="charlie_cooper", uid_number=1004) + user = authenticate(identifier="charlie_cooper", password="password") + self.assertIsInstance(user, TestUser) + self.assertEqual(user.identifier, charlie.identifier) + @_override_settings(AUTH_USER_MODEL="tests.TestUser") def test_auth_custom_user(self): self._init_settings( pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy