amelioration de authentification

authentificationJean
Siwa12100 1 year ago
parent 7db64c3384
commit 7567409574

@ -28,22 +28,6 @@
<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>
</DataGridColumn>

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

@ -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)
{

@ -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<AppUtilisateur> utilisateursApplication;
private List<Utilisateur> UtilisateursApplication {get; set;}
private IUtilisateursDataService _utilisateursDataService;
static AuthentificationService()
public AuthentificationService(IUtilisateursDataService utilisateursDataService)
{
utilisateursApplication = new List<AppUtilisateur>();
utilisateursApplication.Add(new AppUtilisateur("Admin", "Compte", "Admin", "compte@admin.fr", "Admin", "admin"));
this._utilisateursDataService = utilisateursDataService;
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)
{
@ -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)
{
@ -33,7 +37,7 @@ public class AuthentificationService : IAuthentificationService
}
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
{
@ -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();
}
}

@ -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());
}
}

@ -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<UtilisateurCourant> GetUtilisateur(String nom);
public Task Connexion(RequeteConnexion requete);
public Task Inscription(RequeteInscription requete);
}

@ -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",

Loading…
Cancel
Save