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') |