diff --git a/VeraxShield/VeraxShield/composants/authentification/modele/RequeteInscription.cs b/VeraxShield/VeraxShield/composants/authentification/modele/RequeteInscription.cs index 9d99d90..d731368 100644 --- a/VeraxShield/VeraxShield/composants/authentification/modele/RequeteInscription.cs +++ b/VeraxShield/VeraxShield/composants/authentification/modele/RequeteInscription.cs @@ -1,10 +1,12 @@ using System.ComponentModel.DataAnnotations; +using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms; namespace VeraxShield.composants.formulaires.modeles { public class RequeteInscription { [Required] + [RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le mot de passe doit contenir uniquement des caractères alphanumériques.")] public string MotDePasse { get; set; } [Required] @@ -12,15 +14,23 @@ namespace VeraxShield.composants.formulaires.modeles public string MotDePasseConfirmation { get; set; } [Required] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le nom doit contenir uniquement des lettres.")] + [StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")] public string Nom { get; set; } [Required] + [StringLength(20, ErrorMessage = "Le prénom ne doit pas dépasser 20 caractères !")] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le prénom doit contenir uniquement des lettres.")] public string Prenom {get; set;} [Required] + [StringLength(20, ErrorMessage = "Le pseudo ne doit pas dépasser 20 caractères !")] + [RegularExpression("^[a-zA-Z0-9_]+$", ErrorMessage = "Le pseudo contient des caractères interdits.")] + [PseudoCorrect] public string Pseudo { get; set; } [Required] + [EmailAddress(ErrorMessage = "Veuillez entrer une adresse email valide.")] public string Mail { get; set;} } } diff --git a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor index a2b4552..7073900 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor +++ b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor @@ -1,58 +1,115 @@ - - - - - - -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- -

- - - -
\ No newline at end of file +@using Blazorise.Components +@using System.ComponentModel.DataAnnotations; + + + + + +
+ +

Ajouter un utilisateur

+ + + +
+ + + Pseudo + + + + + + + + + +
+ +
+ + + Prenom + + + + + + + + + +
+ +
+ + + Nom + + + + + + + + + +
+ +
+ + + Mail + + + + + + + + + +
+ +
+ + + Role + + + + + + + + + +
+ +
+ + + Mot de passe + + + + + + + + + +
+ +
+ + +
+ +
+ +
diff --git a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs index 1eaf185..5f49787 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/FormulaireAjout.razor.cs @@ -1,7 +1,6 @@ -using System.Runtime.InteropServices; +using Blazorise; using Microsoft.AspNetCore.Components; using VeraxShield.composants.formulaires.modeles; -using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms; using VeraxShield.factories; using VeraxShield.modele.utilisateurs; using VeraxShield.services.UtilisateursDataService; @@ -10,36 +9,38 @@ namespace VeraxShield.composants.formulaires { public partial class FormulaireAjout { - [Inject] - private NavigationManager NavigationManager { get; set; } + + [Parameter] + public Validations Validations {get; set;} - public FormulaireAjoutModele Modele { get; set; } + public FormulaireAjoutModele Modele {get; set;} [Inject] - private IUtilisateursDataService utilisateursDataService { get; set; } + private NavigationManager NavigationManager {get; set;} - public FormulaireAjout() - { + [Inject] + private IUtilisateursDataService utilisateursDataService { get; set; } - } protected override async Task OnInitializedAsync() { - //PseudoCorrectAttribute.Initialiser(await this.utilisateursDataService.getAllUtilisateurs()); this.Modele = new FormulaireAjoutModele(); - this.Modele.IsBan = false; - await base.OnInitializedAsync(); } - public async void ajouterUtilisateur() + public async Task OnSubmit() { - Utilisateur nouvelUtilisateur = UtilisateursFactory.toUtilisateur(this.Modele); - await this.utilisateursDataService.AjouterUtilisateur(nouvelUtilisateur); - - //Console.WriteLine("Utilisateur bien ajouté !"); + if (await this.Validations.ValidateAll()) + { + Utilisateur nouvelUtilisateur = UtilisateursFactory.toUtilisateur(this.Modele); + await this.utilisateursDataService.AjouterUtilisateur(nouvelUtilisateur); + this.NavigationManager.NavigateTo("/utilisateurs/liste"); + } + } + public async Task OnAnnulation() + { this.NavigationManager.NavigateTo("/utilisateurs/liste"); } } -} +} \ No newline at end of file diff --git a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs index ad7082f..a4e247c 100644 --- a/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs +++ b/VeraxShield/VeraxShield/composants/formulaires/modeles/FormulaireAjoutModele.cs @@ -16,7 +16,7 @@ namespace VeraxShield.composants.formulaires.modeles [Required] [StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")] - [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le prénom doit contenir uniquement des lettres.")] + [RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le nom doit contenir uniquement des lettres.")] public String Nom { get; set; } [Required] diff --git a/VeraxShield/VeraxShield/pages/utilisateurs/AjouterUtilisateur.razor b/VeraxShield/VeraxShield/pages/utilisateurs/AjouterUtilisateur.razor index 30e0fef..928fcf2 100644 --- a/VeraxShield/VeraxShield/pages/utilisateurs/AjouterUtilisateur.razor +++ b/VeraxShield/VeraxShield/pages/utilisateurs/AjouterUtilisateur.razor @@ -1,9 +1,18 @@ @using VeraxShield.composants.formulaires @page "/utilisateurs/ajouter" -

Ajouter un utilisateur

- + + + + +
+
+ +
+ +
+ diff --git a/VeraxShield/VeraxShield/pages/utilisateurs/ListeUtilisateurs.razor b/VeraxShield/VeraxShield/pages/utilisateurs/ListeUtilisateurs.razor index 5806529..337ea3a 100644 --- a/VeraxShield/VeraxShield/pages/utilisateurs/ListeUtilisateurs.razor +++ b/VeraxShield/VeraxShield/pages/utilisateurs/ListeUtilisateurs.razor @@ -9,7 +9,7 @@ -
+

Utilisateurs de Verax

Vous retrouverez ici les utilisateurs de Verax ainsi que les actions associées

diff --git a/VeraxShield/VeraxShield/wwwroot/css/composants/formulaires/FormulaireAjout.css b/VeraxShield/VeraxShield/wwwroot/css/composants/formulaires/FormulaireAjout.css new file mode 100644 index 0000000..558a99e --- /dev/null +++ b/VeraxShield/VeraxShield/wwwroot/css/composants/formulaires/FormulaireAjout.css @@ -0,0 +1,51 @@ + +.formulaire-conteneur { + + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Ajoute une ombre au formulaire */ + border-radius: 10px; /* Ajoute des bords arrondis au formulaire */ + + /* background-color: black; */ + background-color: #8BC6EC; + background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%); + + color: white; /* Définit la couleur du texte à blanc */ + padding: 20px; /* Ajoute une marge intérieure pour plus de lisibilité */ +} + +.title-spacing { + margin-bottom: 20px; /* Ajoute une séparation entre le titre et le reste du contenu */ +} + +.field-container { + margin-bottom: 15px; /* Ajoute une séparation entre chaque champ */ +} + +/* Rend les labels en gras et blancs */ +.field-label { + font-weight: bold; + color: white; +} + +.btn-container { + display: flex; + justify-content: center; + margin-top: 20px; /* Ajoute une séparation entre les champs et les boutons */ +} + +.btn-se-connecter { + /* background-color: darkblue; */ + + /*background: #F3904F; fallback for old browsers */ + /*background: -webkit-linear-gradient(to right, #3B4371, #F3904F); Chrome 10-25, Safari 5.1-6 */ + /*background: linear-gradient(to right, #3B4371, #F3904F); W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + + background: white; + color: black; + margin-right: 10px; /* Ajoute un espace entre les deux boutons */ +} + +.btn-s-inscrire { + background-color: white; + /* color: white; */ + color: black; +} \ No newline at end of file diff --git a/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/AjouterUtilisateur.css b/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/AjouterUtilisateur.css new file mode 100644 index 0000000..6f3b0c0 --- /dev/null +++ b/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/AjouterUtilisateur.css @@ -0,0 +1,14 @@ +.container { + display: flex; + justify-content: center; + align-items: center; + height: 100vh; /* 100% de la hauteur de la vue */ +} + +.formulaire-modification { + width: 50%; + /* background-color: green; + padding: 20px; */ + /*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); Ajoute une ombre au formulaire */ + /* border-radius: 10px; Ajoute des bords arrondis au formulaire */ +} \ No newline at end of file diff --git a/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/listeUtilisateurs.css b/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/listeUtilisateurs.css index bd50371..5ce7ab9 100644 --- a/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/listeUtilisateurs.css +++ b/VeraxShield/VeraxShield/wwwroot/css/pages/utilisateurs/listeUtilisateurs.css @@ -12,7 +12,12 @@ margin: 20px auto; text-align: center; border-radius: 10px; - background-color: #afc1db; + + + /* background-color: #afc1db; */ + + background-color: #8BC6EC; + background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%); width: 80%; }