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