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