travail sur la sécurisation des formulaires

travailFormulairesJean
Siwa12100 1 year ago
parent 9b86d82819
commit c06b573b4a

@ -8,7 +8,7 @@
<DataGrid TItem="Utilisateur" <DataGrid TItem="Utilisateur"
Data="@Utilisateurs" Data="@Utilisateurs"
@bind-SelectedRow="@utilisateurSelectionne" @bind-SelectedRow="@UtilisateurSelectionne"
Responsive Responsive
ShowPager ShowPager
ShowPageSizes ShowPageSizes
@ -91,7 +91,7 @@
<div> <div>
<ModalSuppressionUtilisateur <ModalSuppressionUtilisateur
utilisateur="@utilisateurSelectionne" utilisateur="@UtilisateurSelectionne"
@ref="Modal" @ref="Modal"
modalFerme="fermetureModal" /> modalFerme="fermetureModal" />
</div> </div>

@ -20,7 +20,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
[Inject] [Inject]
private DonneurEtat DonneurEtat {get; set;} private DonneurEtat DonneurEtat {get; set;}
private Utilisateur? utilisateurSelectionne; public static Utilisateur? UtilisateurSelectionne;
[Parameter] [Parameter]
public ModalSuppressionUtilisateur Modal {get; set;} public ModalSuppressionUtilisateur Modal {get; set;}
@ -29,7 +29,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
{ {
//await this.utilisateursDataService.resetDataUtilisateurs(); //await this.utilisateursDataService.resetDataUtilisateurs();
this.utilisateurSelectionne = null; DatagridUtilisateurs.UtilisateurSelectionne = null;
DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs(); DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
await base.OnInitializedAsync(); await base.OnInitializedAsync();
} }
@ -43,7 +43,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
public async Task fermetureModal(bool val) { public async Task fermetureModal(bool val) {
if (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() 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) public async Task onClickBoutonSuppression(String Pseudo)
{ {
this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); DatagridUtilisateurs.UtilisateurSelectionne= await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
if (this.DonneurEtat._utilisateurCourant.Pseudo != this.utilisateurSelectionne.Pseudo) if (this.DonneurEtat._utilisateurCourant.Pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo)
{ {
await this.afficherModal(); await this.afficherModal();
} }
@ -81,7 +81,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
public async Task onClickBoutonModification(String Pseudo) public async Task onClickBoutonModification(String Pseudo)
{ {
this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo); DatagridUtilisateurs.UtilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
this.modifierUtilisateur(); this.modifierUtilisateur();
} }

@ -68,6 +68,21 @@
</Validation> </Validation>
</div> </div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Role</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez le role" @bind-Text="@Modele.Role">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container"> <div class="field-container">
<Validation> <Validation>
<Field Horizontal> <Field Horizontal>

@ -29,10 +29,11 @@ namespace VeraxShield.composants.formulaires.modeles
public String Mail { get; set; } public String Mail { get; set; }
[Required] [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; } public String Mdp { get; set; }
[Required] [Required]
[RoleExistant]
public String Role { get; set; } public String Role { get; set; }
[Required] [Required]

@ -16,17 +16,12 @@ namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms
foreach (Utilisateur u in DatagridUtilisateurs.Utilisateurs) 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; return ValidationResult.Success;
} }
} }

@ -0,0 +1,33 @@
using System.ComponentModel.DataAnnotations;
namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms
{
public class RoleExistantAttribute : ValidationAttribute
{
private List<string> RolesExistants {get; set;}
public RoleExistantAttribute()
{
this.RolesExistants = new List<string>();
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.");
}
}
}
Loading…
Cancel
Save