Files
serveur-d-authentification/authentification/views.py

52 lines
1.9 KiB
Python
Raw Normal View History

2026-09-08 11:07:02 +00:00
import json
from decouple import config
from django.contrib import messages
2026-08-03 13:05:09 +00:00
from django.contrib.auth import authenticate, login, logout
2026-09-08 11:07:02 +00:00
from django.contrib.auth.models import User
from django.http import JsonResponse
from django.shortcuts import redirect, render
2026-09-08 11:07:02 +00:00
from django.views.decorators.csrf import csrf_exempt
2026-08-03 13:05:09 +00:00
def login_view(request):
if request.method == 'POST':
username = request.POST.get('mail')
password = request.POST.get('mot_de_passe')
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
next_url = request.GET.get('next') or request.POST.get('next') or config("SIRH_LIEN")
2026-08-03 13:05:09 +00:00
return redirect(next_url)
else:
messages.error(request, "L'adresse mail ou le mot de passe est invalide. Veuillez réessayer.")
2026-08-03 13:05:09 +00:00
return render(request, 'authentification/login.html', {'error': 'Identifiants invalides'})
return render(request, 'authentification/login.html')
2026-09-08 11:07:02 +00:00
@csrf_exempt
def modifier_mot_passe(request):
"""Vue pour permettre à un utilisateur de modifier son mot de passe et ses informations de profil"""
data = json.loads(request.body)
ancien_mdp = data.get('ancien_mdp')
nouveau_mdp = data.get('nouveau_mdp')
confirmation_mdp = data.get('confirmation_mdp')
username = data.get("username")
user = User.objects.get(username=username)
if not user.check_password(ancien_mdp):
2026-10-13 11:19:54 +00:00
return JsonResponse({"error": "Le mot de passe actuel est incorrect."}, status=400)
2026-09-08 11:07:02 +00:00
if nouveau_mdp != confirmation_mdp:
return JsonResponse({"error": "Le nouveau mot de passe et sa confirmation ne correspondent pas."}, status=400)
user.set_password(nouveau_mdp)
user.save()
return JsonResponse({"success": "Mot de passe modifié avec succès."})
2026-08-03 13:05:09 +00:00
def deconnexion_view(request):
"""Gère la déconnexion de l'utilisateur."""
logout(request)
return redirect('login')