diff --git a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor index 11d9e58..ff8a228 100644 --- a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor +++ b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor @@ -8,7 +8,7 @@ diff --git a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor.cs b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor.cs index 905e2f8..65a4551 100644 --- a/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor.cs +++ b/VeraxShield/VeraxShield/composants/affichages/utilisateurs/DatagridUtilisateurs.razor.cs @@ -20,7 +20,7 @@ namespace VeraxShield.composants.affichages.utilisateurs [Inject] private DonneurEtat DonneurEtat {get; set;} - private Utilisateur? utilisateurSelectionne; + public static Utilisateur? UtilisateurSelectionne; [Parameter] public ModalSuppressionUtilisateur Modal {get; set;} @@ -29,7 +29,7 @@ namespace VeraxShield.composants.affichages.utilisateurs { //await this.utilisateursDataService.resetDataUtilisateurs(); - this.utilisateurSelectionne = null; + DatagridUtilisateurs.UtilisateurSelectionne = null; DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs(); await base.OnInitializedAsync(); } @@ -43,7 +43,7 @@ namespace VeraxShield.composants.affichages.utilisateurs public async Task fermetureModal(bool val) { if (val) { - await this.supprimerUtilisateur(this.utilisateurSelectionne); + await this.supprimerUtilisateur(DatagridUtilisateurs.UtilisateurSelectionne); } } @@ -64,16 +64,16 @@ namespace VeraxShield.composants.affichages.utilisateurs public void modifierUtilisateur() { - if (this.utilisateurSelectionne != null) + if (DatagridUtilisateurs.UtilisateurSelectionne != null) { - this.NavigationManager.NavigateTo("/utilisateurs/modifier/" + utilisateurSelectionne.Pseudo); + this.NavigationManager.NavigateTo("/utilisateurs/modifier/" + DatagridUtilisateurs.UtilisateurSelectionne.Pseudo); } } public async Task onClickBoutonSuppression(String Pseudo) { - this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); - if (this.DonneurEtat._utilisateurCourant.Pseudo != this.utilisateurSelectionne.Pseudo) + DatagridUtilisateurs.UtilisateurSelectionne= await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); + if (this.DonneurEtat._utilisateurCourant.Pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo) { await this.afficherModal(); } @@ -81,7 +81,7 @@ namespace VeraxShield.composants.affichages.utilisateurs public async Task onClickBoutonModification(String Pseudo) { - this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); + DatagridUtilisateurs.UtilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); this.modifierUtilisateur(); } diff --git a/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor b/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor index 8cecd9f..91182fd 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor +++ b/VeraxShield/VeraxShield/composants/formulaires/FormulaireModification.razor @@ -68,6 +68,21 @@ +
+ + + Role + + + + + + + + + +
+
diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs index f3c4c5f..ad7082f 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs @@ -29,10 +29,11 @@ namespace VeraxShield.composants.formulaires.modeles public String Mail { get; set; } [Required] - [RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le pseudo doit contenir uniquement des caractères alphanumériques.")] + [RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le mot de passe doit contenir uniquement des caractères alphanumériques.")] public String Mdp { get; set; } [Required] + [RoleExistant] public String Role { get; set; } [Required] diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs index a9cbea9..2e64ccd 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/PseudoCorrectAttribute.cs @@ -16,17 +16,12 @@ namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms foreach (Utilisateur u in DatagridUtilisateurs.Utilisateurs) { - if (u.Pseudo == pseudo) + if (u.Pseudo == pseudo && pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo) { - pseudoExisteDeja = true; + return new ValidationResult("Le pseudo existe deja, choississez en un autre."); } } - if (pseudoExisteDeja) - { - return new ValidationResult("Le pseudo existe deja, choississez en un autre."); - } - return ValidationResult.Success; } } diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/RoleExistantAttribute.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/RoleExistantAttribute.cs new file mode 100644 index 0000000..e15f863 --- /dev/null +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/attributsValidationCustoms/RoleExistantAttribute.cs @@ -0,0 +1,33 @@ +using System.ComponentModel.DataAnnotations; + +namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms +{ + public class RoleExistantAttribute : ValidationAttribute + { + private List RolesExistants {get; set;} + + public RoleExistantAttribute() + { + this.RolesExistants = new List(); + this.RolesExistants.Add("admin"); + this.RolesExistants.Add("modo"); + this.RolesExistants.Add("invite"); + this.RolesExistants.Add("redacteur"); + } + + protected override ValidationResult? IsValid(object? value, ValidationContext validationContext) + { + var role = (string)value; + + foreach (string roleListe in this.RolesExistants) + { + if (roleListe == role) + { + return ValidationResult.Success;; + } + } + + return new ValidationResult("Le role n'existe pas."); + } + } +} \ No newline at end of file