37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
|
|
from django.contrib.auth import authenticate, login, logout
|
|||
|
|
from django.shortcuts import render, redirect
|
|||
|
|
from django.contrib import messages
|
|||
|
|
|
|||
|
|
def login_view(request):
|
|||
|
|
"""
|
|||
|
|
Gère la connexion des utilisateurs avec redirection selon le rôle et
|
|||
|
|
vérification de l'acceptation de la politique d'utilisation.
|
|||
|
|
"""
|
|||
|
|
if request.method == 'POST':
|
|||
|
|
email = request.POST.get('mail')
|
|||
|
|
password = request.POST.get('mot_de_passe')
|
|||
|
|
|
|||
|
|
if not (email and password):
|
|||
|
|
messages.error(request, "Veuillez remplir tous les champs.")
|
|||
|
|
return render(request, 'login.html')
|
|||
|
|
|
|||
|
|
user = authenticate(request, username=email, password=password)
|
|||
|
|
|
|||
|
|
if user is None:
|
|||
|
|
messages.error(request, "Nom d’utilisateur ou mot de passe incorrect.")
|
|||
|
|
return render(request, 'login.html')
|
|||
|
|
|
|||
|
|
if not user.is_active:
|
|||
|
|
messages.error(request, "Compte inactif. Contactez l'administrateur.")
|
|||
|
|
return render(request, 'login.html')
|
|||
|
|
|
|||
|
|
login(request, user)
|
|||
|
|
|
|||
|
|
return redirect("gestion_conges:conge")
|
|||
|
|
|
|||
|
|
return render(request, 'login.html')
|
|||
|
|
|
|||
|
|
def deconnexion_view(request):
|
|||
|
|
"""Gère la déconnexion de l'utilisateur."""
|
|||
|
|
logout(request)
|
|||
|
|
return redirect('login')
|