amelioration de authentification

authentificationJean
Siwa12100 1 year ago
parent 7db64c3384
commit 7567409574

@ -28,22 +28,6 @@
<Badge Color="Color.Success" Pill>Valide</Badge> <Badge Color="Color.Success" Pill>Valide</Badge>
} }
@* 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...
*@
</DisplayTemplate> </DisplayTemplate>
</DataGridColumn> </DataGridColumn>

@ -23,6 +23,7 @@ namespace VeraxShield.composants.authentification
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
this.Requete = new RequeteConnexion(); this.Requete = new RequeteConnexion();
await base.OnInitializedAsync();
} }
public async Task OnSubmit() public async Task OnSubmit()

@ -33,11 +33,11 @@ namespace VeraxShield.factories
return temp; return temp;
} }
public static Utilisateur toUtilisateur(AppUtilisateur appUtilisateur) // public static Utilisateur toUtilisateur(UtilisateurCourant appUtilisateur)
{ // {
return new Utilisateur(appUtilisateur.Pseudo, appUtilisateur.Nom, appUtilisateur.Prenom, // return new Utilisateur(appUtilisateur.Pseudo, appUtilisateur.Nom, appUtilisateur.Prenom,
appUtilisateur.Roles[0], appUtilisateur.MotDePasse, appUtilisateur.Mail, false); // appUtilisateur.Roles[0], appUtilisateur.MotDePasse, appUtilisateur.Mail, false);
} // }
public static AppUtilisateur toAppUtilisateur(Utilisateur u) public static AppUtilisateur toAppUtilisateur(Utilisateur u)
{ {

@ -1,21 +1,24 @@
using System.Linq;
using System.Security.Claims; using System.Security.Claims;
using VeraxShield.composants.formulaires.modeles; using VeraxShield.composants.formulaires.modeles;
using VeraxShield.modele.utilisateurs;
using VeraxShield.services.UtilisateursDataService; using VeraxShield.services.UtilisateursDataService;
public class AuthentificationService : IAuthentificationService public class AuthentificationService : IAuthentificationService
{ {
private List<Utilisateur> UtilisateursApplication {get; set;}
private static readonly List<AppUtilisateur> utilisateursApplication; private IUtilisateursDataService _utilisateursDataService;
static AuthentificationService() public AuthentificationService(IUtilisateursDataService utilisateursDataService)
{ {
utilisateursApplication = new List<AppUtilisateur>(); this._utilisateursDataService = utilisateursDataService;
utilisateursApplication.Add(new AppUtilisateur("Admin", "Compte", "Admin", "compte@admin.fr", "Admin", "admin")); this.UtilisateursApplication = new List<Utilisateur>();
} }
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) if (utilisateur == null)
{ {
@ -23,9 +26,10 @@ public class AuthentificationService : IAuthentificationService
} }
} }
public UtilisateurCourant GetUtilisateur(string nom) public async Task<UtilisateurCourant> 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) if (utilisateur == null)
{ {
@ -33,7 +37,7 @@ public class AuthentificationService : IAuthentificationService
} }
var claims = new List<Claim>(); var claims = new List<Claim>();
claims.AddRange(utilisateur.Roles.Select(s => new Claim(ClaimTypes.Role, s))); claims.Add(new Claim(ClaimTypes.Role, utilisateur.Role));
return new UtilisateurCourant 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, this.UtilisateursApplication = await this._utilisateursDataService.getAllUtilisateurs();
requete.Mail, requete.MotDePasse, "invite"));
} }
} }

@ -51,10 +51,10 @@ public class DonneurEtat : AuthenticationStateProvider
public async Task Connexion(RequeteConnexion requete) public async Task Connexion(RequeteConnexion requete)
{ {
this._serviceAuthentification.Connexion(requete); await this._serviceAuthentification.Connexion(requete);
// No error - Login the user // No error - Login the user
var user = this._serviceAuthentification.GetUtilisateur(requete.Pseudo); var user = await this._serviceAuthentification.GetUtilisateur(requete.Pseudo);
this._utilisateurCourant = user; this._utilisateurCourant = user;
NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
@ -68,15 +68,12 @@ public class DonneurEtat : AuthenticationStateProvider
public async Task Inscription(RequeteInscription requete) public async Task Inscription(RequeteInscription requete)
{ {
this._serviceAuthentification.Inscription(requete); await this._serviceAuthentification.Inscription(requete);
// No error - Login the user // No error - Login the user
var user = this._serviceAuthentification.GetUtilisateur(requete.Nom); var user = await this._serviceAuthentification.GetUtilisateur(requete.Nom);
this._utilisateurCourant = user; this._utilisateurCourant = user;
Utilisateur temp = UtilisateursFactory.toUtilisateur(user);
await this._utilisateursDataService.AjouterUtilisateur(temp);
NotifyAuthenticationStateChanged(GetAuthenticationStateAsync()); NotifyAuthenticationStateChanged(GetAuthenticationStateAsync());
} }
} }

@ -2,7 +2,7 @@ using VeraxShield.composants.formulaires.modeles;
public interface IAuthentificationService public interface IAuthentificationService
{ {
public UtilisateurCourant GetUtilisateur(String nom); public Task<UtilisateurCourant> GetUtilisateur(String nom);
public void Connexion(RequeteConnexion requete); public Task Connexion(RequeteConnexion requete);
public void Inscription(RequeteInscription requete); public Task Inscription(RequeteInscription requete);
} }

@ -17,6 +17,15 @@
"Mdp": "SecretPassword456", "Mdp": "SecretPassword456",
"IsBan": true "IsBan": true
}, },
{
"Pseudo": "Admin",
"Mail": "Admin.admin@admin.com",
"Nom": "Admin",
"Prenom": "Admin",
"Role": "admin",
"Mdp": "Admin",
"IsBan": false
},
{ {
"Pseudo": "alice_jones", "Pseudo": "alice_jones",
"Mail": "alice.jones@example.com", "Mail": "alice.jones@example.com",

Loading…
Cancel
Save