64 lines
2 KiB
Python
64 lines
2 KiB
Python
from django.contrib.auth import views as auth_views
|
|
from django.contrib.auth.models import User
|
|
from django.contrib.messages.views import SuccessMessageMixin
|
|
from django.shortcuts import redirect
|
|
from django.urls import reverse_lazy
|
|
from django.views.generic.base import TemplateView
|
|
from django.views.generic.edit import CreateView, DeleteView, UpdateView
|
|
|
|
from . import forms
|
|
|
|
|
|
class HomePageView(TemplateView):
|
|
template_name = "index.html"
|
|
|
|
def dispatch(self, request, *args, **kwargs):
|
|
if request.user.is_authenticated:
|
|
return redirect("home")
|
|
return super().dispatch(request, *args, **kwargs)
|
|
|
|
|
|
class SignupView(SuccessMessageMixin, CreateView):
|
|
model = User
|
|
form_class = forms.UserSignupForm
|
|
success_url = reverse_lazy("login")
|
|
success_message = "Le compte %(username)s a été créé avec succès."
|
|
|
|
|
|
class PasswordChangeView(SuccessMessageMixin, auth_views.PasswordChangeView):
|
|
success_message = "Le mot de passe a été changé avec succès."
|
|
success_url = reverse_lazy("index")
|
|
|
|
|
|
class PasswordResetView(SuccessMessageMixin, auth_views.PasswordResetView):
|
|
success_message = "Un courriel a été envoyé avec les instructions pour réinitialiser votre mot de passe."
|
|
success_url = reverse_lazy("login")
|
|
|
|
|
|
class PasswordResetConfirmView(
|
|
SuccessMessageMixin, auth_views.PasswordResetConfirmView
|
|
):
|
|
success_message = "Le mot de passe a été réinitialisé avec succès."
|
|
success_url = reverse_lazy("login")
|
|
|
|
|
|
class AccountView(UpdateView):
|
|
model = User
|
|
fields = ["username", "email"]
|
|
success_url = reverse_lazy("index")
|
|
template_name = "auth/user_settings.html"
|
|
|
|
def get_object(self, queryset=None):
|
|
if queryset is None:
|
|
queryset = self.get_queryset()
|
|
return queryset.get(pk=self.request.user.pk)
|
|
|
|
|
|
class AccountDeleteView(DeleteView):
|
|
model = User
|
|
success_url = reverse_lazy("index")
|
|
|
|
def get_object(self, queryset=None):
|
|
if queryset is None:
|
|
queryset = self.get_queryset()
|
|
return queryset.get(pk=self.request.user.pk)
|