travail sur la sécurisation des formulaires

travailFormulairesJean
Siwa12100 1 year ago
parent 9b86d82819
commit c06b573b4a

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

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

@ -68,6 +68,21 @@
</Validation>
</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">
<Validation>
<Field Horizontal>

@ -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]

@ -16,16 +16,11 @@ namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms
foreach (Utilisateur u in DatagridUtilisateurs.Utilisateurs)
{
if (u.Pseudo == pseudo)
{
pseudoExisteDeja = true;
}
}
if (pseudoExisteDeja)
if (u.Pseudo == pseudo && pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo)
{
return new ValidationResult("Le pseudo existe deja, choississez en un autre.");
}
}
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