diff --git a/.gitignore b/.gitignore index d32efa13d09d0851a465885d2b84cba6329fc69d..2dde8dd6f4e3eae2946061637955786422ce6f94 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ *~ *.egg-info/ .idea/ -.project/ -.pydevproject/ +.project +.pydevproject diff --git a/ssoauth/app_settings/defaults.py b/ssoauth/app_settings/defaults.py index 8cd0a3d268fe05bdbef8d61f1ea5472b2f5c5f7b..16cd1f61fdb9321c4811dc2e6cc0dd4684cfdb7a 100644 --- a/ssoauth/app_settings/defaults.py +++ b/ssoauth/app_settings/defaults.py @@ -1,5 +1,6 @@ import os from django import urls +from django.conf import settings as django_settings """ @@ -86,3 +87,5 @@ SP_ORGANIZATION = { "url": "https://www.hs-hannover.de", }, } + +DEFAULT_AUTH_BACKEND = django_settings.AUTHENTICATION_BACKENDS[0] diff --git a/ssoauth/views.py b/ssoauth/views.py index 267879aaaac3de92772d469d010779b5178fb12d..31b7f82904070f96c0e8b7e4673d5efa375adf81 100644 --- a/ssoauth/views.py +++ b/ssoauth/views.py @@ -124,7 +124,7 @@ class ACSAuthNView(SAMLMixin, View): This is NOT a universal ACS. It can only consume artifacts with an AuthN statement. It's how OneLogin toolkit works, cannot easily detect/process other statements here, so I don't even try. """ - + def post(self, request, *args, **kwargs): auth = self.get_onelogin_auth(request) auth.process_response() @@ -177,6 +177,7 @@ class ACSAuthNView(SAMLMixin, View): ) auth_utils.cleanup_direct_permissions(user=user) auth_utils.set_user_compat_flags(user=user) + user.backend = app_settings.DEFAULT_AUTH_BACKEND request.user = user contrib_auth.login(request, user) logger.debug("Logged in {user}".format(**locals())) @@ -265,7 +266,7 @@ class DevView(FormView): user = self.request.user groups = list(user.groups.all()) if user.is_authenticated else list() permissions = list(user.get_all_permissions()) - context["tables"] =[ + context["tables"] = [ ["User", OrderedDict([ ["user", "{0} ({1})".format(self.request.user.username, self.request.user.__class__.__name__)], ["groups", ", ".join(str(g) for g in groups)], @@ -296,6 +297,7 @@ class DevView(FormView): except exceptions.ObjectDoesNotExist: import uuid user = auth_utils.get_or_create_user(username=log_in_as_username, uuid=uuid.uuid4()) + user.backend = app_settings.DEFAULT_AUTH_BACKEND self.request.user = user contrib_auth.login(request=self.request, user=user) elif toggle_group: