From 3dd88c487aceb95be87fee6b9a93bf57043d350a Mon Sep 17 00:00:00 2001 From: Youri Westerman Date: Tue, 11 Mar 2025 10:36:16 +0100 Subject: [PATCH 1/6] Only add model backend when local admin login is enabled --- app/signals/settings.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/signals/settings.py b/app/signals/settings.py index 1a5d245d2..a6c489832 100644 --- a/app/signals/settings.py +++ b/app/signals/settings.py @@ -173,9 +173,12 @@ def is_super_user(user) -> bool: AUTHENTICATION_BACKENDS: list[str] = [ 'signals.admin.oidc.backends.AuthenticationBackend', - 'django.contrib.auth.backends.ModelBackend', ] +ADMIN_ENABLE_LOCAL_LOGIN: bool = os.getenv('ADMIN_ENABLE_LOCAL_LOGIN', False) in TRUE_VALUES +if ADMIN_ENABLE_LOCAL_LOGIN: + AUTHENTICATION_BACKENDS.append("django.contrib.auth.backends.ModelBackend") + LOGIN_REDIRECT_URL: str = '/signals/admin/' LOGIN_REDIRECT_URL_FAILURE: str = '/signals/oidc/login_failure/' LOGOUT_REDIRECT_URL: str = '/signals/admin/' From cc5a376d92747e89f77d706a4a83809100ca0434 Mon Sep 17 00:00:00 2001 From: Youri Westerman Date: Tue, 11 Mar 2025 10:37:04 +0100 Subject: [PATCH 2/6] Move password reset link outside of form --- app/signals/templates/admin/login.html | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/signals/templates/admin/login.html b/app/signals/templates/admin/login.html index 70dd1cb45..b9d59cd4c 100644 --- a/app/signals/templates/admin/login.html +++ b/app/signals/templates/admin/login.html @@ -66,16 +66,16 @@ {{ form.password.label_tag }} {{ form.password }} +
+ +
+ {% url 'admin_password_reset' as password_reset_url %} {% if password_reset_url %} {% endif %} -
- -
- {% if OIDC_RP_CLIENT_ID %}
From 5d1ba1371a37aa0f1c94bdacefed3aa043e29b5c Mon Sep 17 00:00:00 2001 From: Youri Westerman Date: Tue, 11 Mar 2025 10:51:48 +0100 Subject: [PATCH 3/6] Do not display login form if local login for admin is disabled --- app/signals/templates/admin/login.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/signals/templates/admin/login.html b/app/signals/templates/admin/login.html index b9d59cd4c..4c2dd6e3b 100644 --- a/app/signals/templates/admin/login.html +++ b/app/signals/templates/admin/login.html @@ -56,6 +56,7 @@

{% endif %} +{% if ADMIN_ENABLE_LOCAL_LOGIN %}
{% csrf_token %}
{{ form.username.errors }} @@ -70,6 +71,7 @@
+{% endif %} {% url 'admin_password_reset' as password_reset_url %} {% if password_reset_url %}