From 68be53e2124feccf668bd45255b15d8ac5dda1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BE=9D=E7=91=AA=E8=B2=93?= Date: Mon, 6 Jul 2020 23:04:14 +0800 Subject: [PATCH] Added to log out the current user. --- mia_core/digest_auth.py | 3 +++ mia_core/views.py | 21 +++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/mia_core/digest_auth.py b/mia_core/digest_auth.py index 4663816..ca655c8 100644 --- a/mia_core/digest_auth.py +++ b/mia_core/digest_auth.py @@ -65,6 +65,9 @@ def digest_login_required(function=None): def _wrapped_view(request, *args, **kwargs): if request.user.is_anonymous: return HttpResponse(status=401) + if "logout" in request.session: + del request.session["logout"] + return HttpResponse(status=401) return view_func(request, *args, **kwargs) return _wrapped_view if function: diff --git a/mia_core/views.py b/mia_core/views.py index 91ea44a..de1e3f1 100644 --- a/mia_core/views.py +++ b/mia_core/views.py @@ -1,3 +1,20 @@ -from django.shortcuts import render +from django.contrib.auth import logout +from django.shortcuts import redirect +from django.views.decorators.http import require_POST -# Create your views here. + +@require_POST +def logout_view(request): + """The view to log out a user. + + Args: + request (HttpRequest): The request. + + Returns: + HttpRedirectResponse: The redirect response. + """ + logout(request) + if "next" in request.POST: + request.session["logout"] = True + return redirect(request.POST["next"]) + return redirect("/")