From b252379ecc60e0bb97309430b2b472d98a0d843b Mon Sep 17 00:00:00 2001 From: Dorian Lesbre <dorian.lesbre@gmail.com> Date: Fri, 5 Mar 2021 17:52:06 +0100 Subject: [PATCH] Reworked accounts views --- .../templates}/activation_email.html | 0 .../templates}/create_account.html | 0 .../templates}/login.html | 0 accounts/urls.py | 7 +++--- accounts/views.py | 23 +++++++++++++------ 5 files changed, 19 insertions(+), 11 deletions(-) rename {home/templates/registration => accounts/templates}/activation_email.html (100%) rename {home/templates/registration => accounts/templates}/create_account.html (100%) rename {home/templates/registration => accounts/templates}/login.html (100%) diff --git a/home/templates/registration/activation_email.html b/accounts/templates/activation_email.html similarity index 100% rename from home/templates/registration/activation_email.html rename to accounts/templates/activation_email.html diff --git a/home/templates/registration/create_account.html b/accounts/templates/create_account.html similarity index 100% rename from home/templates/registration/create_account.html rename to accounts/templates/create_account.html diff --git a/home/templates/registration/login.html b/accounts/templates/login.html similarity index 100% rename from home/templates/registration/login.html rename to accounts/templates/login.html diff --git a/accounts/urls.py b/accounts/urls.py index 47d47d7..752dbc0 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -1,13 +1,12 @@ from django.urls import include, path -import django.contrib.auth.views as dj_auth_views -from accounts.views import logout_view, ActivateAccountView, CreateAccountView +from accounts.views import ActivateAccountView, CreateAccountView, LogoutView, LoginView app_name = "accounts" urlpatterns = [ - path("login/", dj_auth_views.LoginView.as_view(), name="login"), - path("logout/", logout_view, name="logout"), + path("login/", LoginView.as_view(), name="login"), + path("logout/", LogoutView.as_view(), name="logout"), path("create/", CreateAccountView.as_view(), name="create"), path('activate/<uidb64>/<token>/', ActivateAccountView.as_view(), name='activate'), ] diff --git a/accounts/views.py b/accounts/views.py index 903d734..ce64f6d 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -1,7 +1,7 @@ from django.conf import settings from django.contrib import messages from django.contrib.auth import authenticate, login, logout -from django.contrib.auth.decorators import login_required +from django.contrib.auth.views import LoginView as DjangoLoginView from django.contrib.sites.shortcuts import get_current_site from django.http import Http404 from django.utils.encoding import force_bytes, force_text @@ -16,17 +16,26 @@ from accounts.models import EmailUser from accounts.tokens import email_token_generator from site_settings.models import SiteSettings -@login_required -def logout_view(request): +class LoginView(DjangoLoginView): + """Vue pour se connecter""" + template_name = "login.html" + +class LogoutView(RedirectView): """Vue pour se deconnecter""" - logout(request) - messages.success(request, "Vous avez bien été déconecté·e.") - return redirect("home") + + permanent = False + pattern_name = "home" + + def get_redirect_url(self, *args, **kwargs): + if self.request.user.is_authenticated: + logout(self.request) + messages.info(self.request, "Vous avez bien été déconnecté·e.") + return super().get_redirect_url(*args, **kwargs) class CreateAccountView(View): """Vue pour la creation de compte""" form_class = CreateAccountForm - template_name = 'registration/create_account.html' + template_name = 'create_account.html' @staticmethod def check_creation_allowed(): -- GitLab