diff --git a/apps/audits/signals_handler.py b/apps/audits/signals_handler.py index e25bd9be9..5543cca3b 100644 --- a/apps/audits/signals_handler.py +++ b/apps/audits/signals_handler.py @@ -127,7 +127,11 @@ def on_audits_log_create(sender, instance=None, **kwargs): def get_login_backend(request): backend = request.session.get(BACKEND_SESSION_KEY, '') backend = backend.rsplit('.', maxsplit=1)[-1] - return LOGIN_BACKEND.get(backend, '') + if backend in LOGIN_BACKEND: + return LOGIN_BACKEND[backend] + else: + logger.warn(f'LOGIN_BACKEND_NOT_FOUND: {backend}') + return '' def generate_data(username, request): diff --git a/apps/authentication/signals_handlers.py b/apps/authentication/signals_handlers.py index 4c49f5d55..8174f0db7 100644 --- a/apps/authentication/signals_handlers.py +++ b/apps/authentication/signals_handlers.py @@ -1,5 +1,6 @@ from importlib import import_module +from django.contrib.auth import BACKEND_SESSION_KEY from django.conf import settings from django.contrib.auth import user_logged_in from django.core.cache import cache @@ -24,14 +25,17 @@ def on_user_auth_login_success(sender, user, request, **kwargs): @receiver(openid_user_login_success) def on_oidc_user_login_success(sender, request, user, **kwargs): + request.session[BACKEND_SESSION_KEY] = 'OIDCAuthCodeBackend' post_auth_success.send(sender, user=user, request=request) @receiver(openid_user_login_failed) def on_oidc_user_login_failed(sender, username, request, reason, **kwargs): + request.session[BACKEND_SESSION_KEY] = 'OIDCAuthCodeBackend' post_auth_failed.send(sender, username=username, request=request, reason=reason) @receiver(cas_user_authenticated) def on_cas_user_login_success(sender, request, user, **kwargs): - post_auth_success.send(sender, user=user, request=request) \ No newline at end of file + request.session[BACKEND_SESSION_KEY] = 'CASBackend' + post_auth_success.send(sender, user=user, request=request)