From 2c87e79aafd1783ffc952acb1146f36ed2150ae1 Mon Sep 17 00:00:00 2001 From: Tanner Prestegard <tanner.prestegard@ligo.org> Date: Thu, 27 Jun 2019 09:32:09 -0500 Subject: [PATCH] ligoauth: rework logout view --- config/urls.py | 8 +++++--- gracedb/ligoauth/views.py | 16 +--------------- gracedb/templates/navbar_frag.html | 2 +- 3 files changed, 7 insertions(+), 19 deletions(-) diff --git a/config/urls.py b/config/urls.py index f27165927..427be8672 100644 --- a/config/urls.py +++ b/config/urls.py @@ -2,7 +2,7 @@ from django.conf import settings from django.conf.urls import url, include from django.contrib import admin -from django.contrib.auth.views import logout +from django.contrib.auth.views import LogoutView from django.views.generic import TemplateView # Import feeds @@ -10,7 +10,9 @@ import core.views from events.feeds import EventFeed, feedview import events.reports import events.views -from ligoauth.views import pre_login, post_login, shib_logout, manage_password +from ligoauth.views import ( + pre_login, post_login, manage_password +) import search.views # Django admin auto-discover @@ -51,7 +53,7 @@ urlpatterns = [ # Authentication url(r'^login/$', pre_login, name='login'), url(r'^post-login/$', post_login, name='post-login'), - url(r'^logout/$', shib_logout, name='logout'), + url(r'^logout/$', LogoutView.as_view(), name='logout'), # Password management url('^manage-password/$', manage_password, name='manage-password'), diff --git a/gracedb/ligoauth/views.py b/gracedb/ligoauth/views.py index 9d6084a35..8e5870320 100644 --- a/gracedb/ligoauth/views.py +++ b/gracedb/ligoauth/views.py @@ -1,9 +1,7 @@ import logging from django.conf import settings -from django.contrib.auth import ( - logout, get_user_model, update_session_auth_hash, -) +from django.contrib.auth import get_user_model, update_session_auth_hash from django.http import HttpResponseRedirect, HttpResponseForbidden from django.shortcuts import resolve_url, render from django.urls import reverse @@ -84,18 +82,6 @@ def post_login(request): return HttpResponseRedirect(original_url) -def shib_logout(request): - - # Call Django logout function - logout(request) - - # Get original url where the logout button was pressed from - original_url = request.META.get('HTTP_REFERER', - resolve_url(settings.LOGOUT_REDIRECT_URL)) - - return HttpResponseRedirect(original_url) - - @lvem_observers_only(superuser_allowed=True) def manage_password(request): # Set up context dictionary diff --git a/gracedb/templates/navbar_frag.html b/gracedb/templates/navbar_frag.html index 1a1ae9e3c..d7dd5855e 100644 --- a/gracedb/templates/navbar_frag.html +++ b/gracedb/templates/navbar_frag.html @@ -20,7 +20,7 @@ <li id="nav-other"><a href="{% url "other" %}">Other</a></li> {% endif %} {% if user.is_authenticated %} - <li id="nav-logout"><a href="{% url "logout" %}">Logout</a></li> + <li id="nav-logout"><a href="{% url "logout" %}?next={{ request.path }}">Logout</a></li> <li id="nav-user">Authenticated as: {% if user.first_name %} {{ user.get_full_name }} -- GitLab