Fix: changement du mot de passe

This commit is contained in:
2026-09-08 11:07:02 +00:00
parent 8605297da8
commit 01d94332fd
882 changed files with 33 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
from django.contrib.auth.models import User
from django.db import models
class Departement(models.Model):
"""Modèle représentant un département de l'entreprise."""
nom = models.CharField(max_length=100)

View File

@@ -1,7 +1,9 @@
from django.urls import path
from .views import login_view, deconnexion_view
from .views import deconnexion_view, login_view, modifier_mot_passe
urlpatterns = [
path('login/', login_view, name='login'),
path('login/', login_view, name='login'),
path('deconnexion/', deconnexion_view, name='deconnexion'),
path('modifier-mot-de-passe/', modifier_mot_passe, name='modifier_mot_passe')
]

View File

@@ -1,7 +1,12 @@
import json
from decouple import config
from django.contrib import messages
from django.contrib.auth import authenticate, login, logout
from django.contrib.auth.models import User
from django.http import JsonResponse
from django.shortcuts import redirect, render
from django.views.decorators.csrf import csrf_exempt
def login_view(request):
@@ -18,6 +23,28 @@ def login_view(request):
return render(request, 'authentification/login.html', {'error': 'Identifiants invalides'})
return render(request, 'authentification/login.html')
@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):
return JsonResponse({"error": "Le mot de passe actuel est incorrect."}, status=400)
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."})
def deconnexion_view(request):
"""Gère la déconnexion de l'utilisateur."""
logout(request)