From 756740957409a796e021f4671495360ec7e2e282 Mon Sep 17 00:00:00 2001 From: Siwa12100 Date: Tue, 16 Jan 2024 16:51:02 +0100 Subject: [PATCH] amelioration de authentification --- .../utilisateurs/DatagridUtilisateurs.razor | 16 -------- .../FormulaireConnexion.razor.cs | 1 + .../factories/UtilisateursFactory.cs | 10 ++--- .../AuthentificationService.cs | 37 ++++++++++++------- .../authentificationService/DonneurEtat.cs | 11 ++---- .../IAuthentificationService.cs | 6 +-- .../wwwroot/data/fakeUtilisateurs.json | 9 +++++ 7 files changed, 46 insertions(+), 44 deletions(-) diff --git a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor index 484a70c..929d2c5 100644 --- a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor +++ b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor @@ -28,22 +28,6 @@ Valide } - @* plan d'architecture - concepts mis en place - organisation / répartition - User case - simili de Gantt - - code propre (variables et fonctions compréhensibles) - fonctionnel - Authentification - Service factice - Service réel - Formulaire - Recupérer un élément, modif, supp... - - *@ - diff --git a/VeraxShield/VeraxShield/composants/authentification/FormulaireConnexion.razor.cs b/VeraxShield/VeraxShield/composants/authentification/FormulaireConnexion.razor.cs index 9f16970..88d5d85 100644 --- a/VeraxShield/VeraxShield/composants/authentification/FormulaireConnexion.razor.cs +++ b/VeraxShield/VeraxShield/composants/authentification/FormulaireConnexion.razor.cs @@ -23,6 +23,7 @@ namespace VeraxShield.composants.authentification protected override async Task OnInitializedAsync() { this.Requete = new RequeteConnexion(); + await base.OnInitializedAsync(); } public async Task OnSubmit() diff --git a/VeraxShield/VeraxShield/factories/UtilisateursFactory.cs b/VeraxShield/VeraxShield/factories/UtilisateursFactory.cs index 57537ba..34c2cc2 100644 --- a/VeraxShield/VeraxShield/factories/UtilisateursFactory.cs +++ b/VeraxShield/VeraxShield/factories/UtilisateursFactory.cs @@ -33,11 +33,11 @@ namespace VeraxShield.factories return temp; } - public static Utilisateur toUtilisateur(AppUtilisateur appUtilisateur) - { - return new Utilisateur(appUtilisateur.Pseudo, appUtilisateur.Nom, appUtilisateur.Prenom, - appUtilisateur.Roles[0], appUtilisateur.MotDePasse, appUtilisateur.Mail, false); - } + // public static Utilisateur toUtilisateur(UtilisateurCourant appUtilisateur) + // { + // return new Utilisateur(appUtilisateur.Pseudo, appUtilisateur.Nom, appUtilisateur.Prenom, + // appUtilisateur.Roles[0], appUtilisateur.MotDePasse, appUtilisateur.Mail, false); + // } public static AppUtilisateur toAppUtilisateur(Utilisateur u) { diff --git a/VeraxShield/VeraxShield/services/authentificationService/AuthentificationService.cs b/VeraxShield/VeraxShield/services/authentificationService/AuthentificationService.cs index e427fac..01fed08 100644 --- a/VeraxShield/VeraxShield/services/authentificationService/AuthentificationService.cs +++ b/VeraxShield/VeraxShield/services/authentificationService/AuthentificationService.cs @@ -1,21 +1,24 @@ +using System.Linq; using System.Security.Claims; using VeraxShield.composants.formulaires.modeles; +using VeraxShield.modele.utilisateurs; using VeraxShield.services.UtilisateursDataService; public class AuthentificationService : IAuthentificationService { - - private static readonly List utilisateursApplication; + private List UtilisateursApplication {get; set;} + private IUtilisateursDataService _utilisateursDataService; - static AuthentificationService() + public AuthentificationService(IUtilisateursDataService utilisateursDataService) { - utilisateursApplication = new List(); - utilisateursApplication.Add(new AppUtilisateur("Admin", "Compte", "Admin", "compte@admin.fr", "Admin", "admin")); + this._utilisateursDataService = utilisateursDataService; + this.UtilisateursApplication = new List(); } - public void Connexion(RequeteConnexion requete) + public async Task Connexion(RequeteConnexion requete) { - var utilisateur = utilisateursApplication.FirstOrDefault(w => w.Pseudo == requete.Pseudo && w.MotDePasse == requete.MotDePasse); + await this.MajUtilisateurs(); + var utilisateur = this.UtilisateursApplication.FirstOrDefault(w => w.Pseudo == requete.Pseudo && w.Mdp == requete.MotDePasse); if (utilisateur == null) { @@ -23,9 +26,10 @@ public class AuthentificationService : IAuthentificationService } } - public UtilisateurCourant GetUtilisateur(string nom) + public async Task GetUtilisateur(string pseudo) { - var utilisateur = utilisateursApplication.FirstOrDefault(w => w.Pseudo == nom); + await this.MajUtilisateurs(); + var utilisateur = this.UtilisateursApplication.FirstOrDefault(w => w.Pseudo == pseudo); if (utilisateur == null) { @@ -33,7 +37,7 @@ public class AuthentificationService : IAuthentificationService } var claims = new List(); - claims.AddRange(utilisateur.Roles.Select(s => new Claim(ClaimTypes.Role, s))); + claims.Add(new Claim(ClaimTypes.Role, utilisateur.Role)); return new UtilisateurCourant { @@ -43,9 +47,16 @@ public class AuthentificationService : IAuthentificationService }; } - public void Inscription(RequeteInscription requete) + public async Task Inscription(RequeteInscription requete) + { + await this._utilisateursDataService.AjouterUtilisateur(new Utilisateur(requete.Pseudo, requete.Nom, requete.Prenom, "invite", + requete.MotDePasse, requete.Mail, false)); + + await this.MajUtilisateurs(); + } + + public async Task MajUtilisateurs() { - utilisateursApplication.Add(new AppUtilisateur(requete.Pseudo, requete.Nom, requete.Prenom, - requete.Mail, requete.MotDePasse, "invite")); + this.UtilisateursApplication = await this._utilisateursDataService.getAllUtilisateurs(); } } \ No newline at end of file diff --git a/VeraxShield/VeraxShield/services/authentificationService/DonneurEtat.cs b/VeraxShield/VeraxShield/services/authentificationService/DonneurEtat.cs index aa13258..add3e28 100644 --- a/VeraxShield/VeraxShield/services/authentificationService/DonneurEtat.cs +++ b/VeraxShield/VeraxShield/services/authentificationService/DonneurEtat.cs @@ -51,10 +51,10 @@ public class DonneurEtat : AuthenticationStateProvider public async Task Connexion(RequeteConnexion requete) { - this._serviceAuthentification.Connexion(requete); + await this._serviceAuthentification.Connexion(requete); // No error - Login the user - var user = this._serviceAuthentification.GetUtilisateur(requete.Pseudo); + var user = await this._serviceAuthentification.GetUtilisateur(requete.Pseudo); this._utilisateurCourant = user; NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); @@ -68,15 +68,12 @@ public class DonneurEtat : AuthenticationStateProvider public async Task Inscription(RequeteInscription requete) { - this._serviceAuthentification.Inscription(requete); + await this._serviceAuthentification.Inscription(requete); // No error - Login the user - var user = this._serviceAuthentification.GetUtilisateur(requete.Nom); + var user = await this._serviceAuthentification.GetUtilisateur(requete.Nom); this._utilisateurCourant = user; - Utilisateur temp = UtilisateursFactory.toUtilisateur(user); - await this._utilisateursDataService.AjouterUtilisateur(temp); - NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); } } \ No newline at end of file diff --git a/VeraxShield/VeraxShield/services/authentificationService/IAuthentificationService.cs b/VeraxShield/VeraxShield/services/authentificationService/IAuthentificationService.cs index 8fc7045..6665618 100644 --- a/VeraxShield/VeraxShield/services/authentificationService/IAuthentificationService.cs +++ b/VeraxShield/VeraxShield/services/authentificationService/IAuthentificationService.cs @@ -2,7 +2,7 @@ using VeraxShield.composants.formulaires.modeles; public interface IAuthentificationService { - public UtilisateurCourant GetUtilisateur(String nom); - public void Connexion(RequeteConnexion requete); - public void Inscription(RequeteInscription requete); + public Task GetUtilisateur(String nom); + public Task Connexion(RequeteConnexion requete); + public Task Inscription(RequeteInscription requete); } \ No newline at end of file diff --git a/VeraxShield/VeraxShield/wwwroot/data/fakeUtilisateurs.json b/VeraxShield/VeraxShield/wwwroot/data/fakeUtilisateurs.json index 60a0225..1e3698a 100644 --- a/VeraxShield/VeraxShield/wwwroot/data/fakeUtilisateurs.json +++ b/VeraxShield/VeraxShield/wwwroot/data/fakeUtilisateurs.json @@ -17,6 +17,15 @@ "Mdp": "SecretPassword456", "IsBan": true }, + { + "Pseudo": "Admin", + "Mail": "Admin.admin@admin.com", + "Nom": "Admin", + "Prenom": "Admin", + "Role": "admin", + "Mdp": "Admin", + "IsBan": false + }, { "Pseudo": "alice_jones", "Mail": "alice.jones@example.com",