From bd60e877f6c50b4e9647883dbd3c1096b8d5eaa6 Mon Sep 17 00:00:00 2001 From: Art Lukyanchyk <artiom.lukyanchyk@hs-hannover.de> Date: Wed, 19 May 2021 11:29:36 +0200 Subject: [PATCH] Fix the fiddly bits --- ssoauth/views.py | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/ssoauth/views.py b/ssoauth/views.py index 1ba9b3a..62babb9 100644 --- a/ssoauth/views.py +++ b/ssoauth/views.py @@ -327,23 +327,13 @@ class DevView(FormView): log_in_as_username = form.cleaned_data["username"] toggle_group = form.cleaned_data["toggle_group"] local_logout = bool(self.request.POST.get("local-logout", None)) - if local_logout: - 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 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: - if toggle_group in self.request.user.groups.all(): - self.request.user.groups.remove(toggle_group) - else: - self.request.user.groups.add(toggle_group) - else: - logger.warning("Too anonymous to join groups.") - elif log_in_as_username: + if log_in_as_username or toggle_group: + log_in_as_username, toggle_group = None, None # single page and single form for everything, avoid weird effects + 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) @@ -353,6 +343,15 @@ class DevView(FormView): user.backend = app_settings.PRETEND_AUTH_BACKEND self.request.user = user contrib_auth.login(request=self.request, user=user) + if toggle_group: + logger.info("Toggling group: {0}".format(toggle_group)) + if self.request.user.is_authenticated: + if toggle_group in self.request.user.groups.all(): + self.request.user.groups.remove(toggle_group) + else: + self.request.user.groups.add(toggle_group) + else: + logger.warning("Too anonymous to join groups.") # 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