Skip to content
Snippets Groups Projects
Commit bd60e877 authored by Art's avatar Art :lizard:
Browse files

Fix the fiddly bits

parent 5939b0bf
No related branches found
No related tags found
No related merge requests found
...@@ -327,23 +327,13 @@ class DevView(FormView): ...@@ -327,23 +327,13 @@ class DevView(FormView):
log_in_as_username = form.cleaned_data["username"] log_in_as_username = form.cleaned_data["username"]
toggle_group = form.cleaned_data["toggle_group"] toggle_group = form.cleaned_data["toggle_group"]
local_logout = bool(self.request.POST.get("local-logout", None)) 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 # perform an action
if local_logout: if local_logout:
logger.info("Logging out {u}".format(u=self.request.user)) logger.info("Logging out {u}".format(u=self.request.user))
contrib_auth.logout(self.request) contrib_auth.logout(self.request)
elif toggle_group: if log_in_as_username or toggle_group:
logger.info("Toggling group: {0}".format(toggle_group)) log_in_as_username, toggle_group = None, None # single page and single form for everything, avoid weird effects
if self.request.user.is_authenticated: if log_in_as_username:
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:
logger.info("Logging in as {0}".format(log_in_as_username)) logger.info("Logging in as {0}".format(log_in_as_username))
try: try:
user = auth_utils.get_user(username=log_in_as_username) user = auth_utils.get_user(username=log_in_as_username)
...@@ -353,6 +343,15 @@ class DevView(FormView): ...@@ -353,6 +343,15 @@ class DevView(FormView):
user.backend = app_settings.PRETEND_AUTH_BACKEND user.backend = app_settings.PRETEND_AUTH_BACKEND
self.request.user = user self.request.user = user
contrib_auth.login(request=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 # update the compat flags, might be needed when user or their groups change
if self.request.user.is_authenticated: if self.request.user.is_authenticated:
auth_utils.update_user_compat_flags(self.request.user, False) auth_utils.update_user_compat_flags(self.request.user, False)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment