From b980dfd40d972b5ba532749d6d10d7f2bbcbf767 Mon Sep 17 00:00:00 2001 From: Frank Sauerburger <frank@sauerburger.com> Date: Thu, 4 Mar 2021 20:54:21 +0100 Subject: [PATCH] Add logout route --- app/keys_home/templates/keys_home/base.html | 27 ++++++++++++++------- app/keys_home/urls.py | 3 ++- app/keys_home/views.py | 10 +++++++- 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/app/keys_home/templates/keys_home/base.html b/app/keys_home/templates/keys_home/base.html index d0117fe..6248e76 100644 --- a/app/keys_home/templates/keys_home/base.html +++ b/app/keys_home/templates/keys_home/base.html @@ -42,16 +42,25 @@ <i class="fas fa-network-wired"></i> PKI </a> </li> + {% if request.user.is_anonymous %} <li class="navbar-login"> - {% if request.user.is_anonymous %} - <a href=""> - <i class="fas fa-sign-in-alt"></i> Login - </a> - {% else %} - <a href=""> - <i class="fas fa-user"></i> {{ request.user.username }} - </a> - {% endif %} + <a href="{% url 'login' %}"> + <i class="fas fa-sign-in-alt"></i> Login + </a> + </li> + {% else %} + <li class="nav-item dropdown"> + <a class="nav-link dropdown-toggle" href="#" id="navbar-user" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + {{ request.user }} + </a> + <div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbar-user"> + {% if request.user.is_staff %} + <a class="dropdown-item" href="/admin">Admin</a> + {% endif %} + <a class="dropdown-item" href="/logout">Logout</a> + </div> + </li> + {% endif %} </li> </ul> </div> diff --git a/app/keys_home/urls.py b/app/keys_home/urls.py index 3dc3b54..8ee6e82 100644 --- a/app/keys_home/urls.py +++ b/app/keys_home/urls.py @@ -20,5 +20,6 @@ from . import views urlpatterns = [ path("", views.home, name="home"), - path('login/', auth_views.LoginView.as_view()), + path('login/', auth_views.LoginView.as_view(), name="login"), + path('logout/', views.logout, name='logout'), ] diff --git a/app/keys_home/views.py b/app/keys_home/views.py index 0e70781..d60fb0b 100644 --- a/app/keys_home/views.py +++ b/app/keys_home/views.py @@ -1,6 +1,14 @@ -from django.shortcuts import render +from django.shortcuts import render, redirect +from django.urls import reverse from django.views.decorators.http import require_safe +import django.contrib.auth as auth @require_safe def home(request): return render(request, "keys_home/home.html") + +def logout(request): + if request.user.is_authenticated: + auth.logout(request) + + return redirect(reverse("home")) -- GitLab