From 5939b0bf5c87a89a51d7a7b2cc6b99278001976b Mon Sep 17 00:00:00 2001 From: Art Lukyanchyk <artiom.lukyanchyk@hs-hannover.de> Date: Thu, 8 Apr 2021 09:41:47 +0200 Subject: [PATCH] Bugfixes --- ssoauth/extras/hsh_compat.py | 2 +- ssoauth/views.py | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/ssoauth/extras/hsh_compat.py b/ssoauth/extras/hsh_compat.py index d66398d..87872e3 100644 --- a/ssoauth/extras/hsh_compat.py +++ b/ssoauth/extras/hsh_compat.py @@ -26,6 +26,6 @@ def get_group_names_for_user(user): except (Account.DoesNotExist, Account.MultipleObjectsReturned,) as e: logger.error("hsh.Account not found for {user}. {e.__class__.__name__}: {e}".format(user=user, e=e)) return set() - hsh_groups = {hsh_account.auth_groups.filter(**GROUP_NAME_LOOKUP)} + hsh_groups = hsh_account.auth_groups.filter(**GROUP_NAME_LOOKUP) return {g.name for g in hsh_groups} diff --git a/ssoauth/views.py b/ssoauth/views.py index fb7d970..1ba9b3a 100644 --- a/ssoauth/views.py +++ b/ssoauth/views.py @@ -331,16 +331,9 @@ class DevView(FormView): if log_in_as_username or toggle_group: log_in_as_username, toggle_group = None, None # single page / single form for everything can cause weird effects # perform an action - if log_in_as_username: - logger.info("Logging in as {0}".format(log_in_as_username)) - try: - user = auth_utils.get_user(username=log_in_as_username) - except exceptions.ObjectDoesNotExist: - import uuid - user = auth_utils.get_or_create_user(username=log_in_as_username, uuid=uuid.uuid4()) - user.backend = app_settings.PRETEND_AUTH_BACKEND - self.request.user = user - contrib_auth.login(request=self.request, user=user) + if local_logout: + logger.info("Logging out {u}".format(u=self.request.user)) + contrib_auth.logout(self.request) elif toggle_group: logger.info("Toggling group: {0}".format(toggle_group)) if self.request.user.is_authenticated: @@ -350,9 +343,16 @@ class DevView(FormView): self.request.user.groups.add(toggle_group) else: logger.warning("Too anonymous to join groups.") - elif local_logout: - logger.info("Logging out {u}".format(u=self.request.user)) - contrib_auth.logout(self.request) + elif log_in_as_username: + logger.info("Logging in as {0}".format(log_in_as_username)) + try: + user = auth_utils.get_user(username=log_in_as_username) + except exceptions.ObjectDoesNotExist: + import uuid + user = auth_utils.get_or_create_user(username=log_in_as_username, uuid=uuid.uuid4()) + user.backend = app_settings.PRETEND_AUTH_BACKEND + self.request.user = user + contrib_auth.login(request=self.request, user=user) # update the compat flags, might be needed when user or their groups change if self.request.user.is_authenticated: auth_utils.update_user_compat_flags(self.request.user, False) -- GitLab