From 697e1431d9fd39de629796744e70909be72b6073 Mon Sep 17 00:00:00 2001 From: sanchezvem Date: Mon, 1 Jun 2026 10:55:32 +0100 Subject: [PATCH] Added validators to managed users --- .../Deliverers/UpdateDelivererEndpoint.cs | 2 +- .../DeleteProductFromQuotationEndpoint.cs | 2 +- .../Users/ConnectUserDtoValidator.cs | 23 ++++++++++++++++ .../Users/CreateUpdateUserDtoValidator.cs | 26 +++++++++++++++++++ .../Users/CreateUserDtoValidator.cs | 26 +++++++++++++++++++ 5 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 PyroFetes/Validators/Users/ConnectUserDtoValidator.cs create mode 100644 PyroFetes/Validators/Users/CreateUpdateUserDtoValidator.cs create mode 100644 PyroFetes/Validators/Users/CreateUserDtoValidator.cs diff --git a/PyroFetes/Endpoints/Deliverers/UpdateDelivererEndpoint.cs b/PyroFetes/Endpoints/Deliverers/UpdateDelivererEndpoint.cs index c9fd77c2..747e4a2a 100644 --- a/PyroFetes/Endpoints/Deliverers/UpdateDelivererEndpoint.cs +++ b/PyroFetes/Endpoints/Deliverers/UpdateDelivererEndpoint.cs @@ -12,7 +12,7 @@ public class UpdateDelivererEndpoint(DeliverersRepository deliverersRepository, public override void Configure() { Put("/deliverers/{@Id}", x => new { x.Id }); - Roles("Admin"); + Roles("Admin", "Employe"); } public override async Task HandleAsync(UpdateDelivererDto req, CancellationToken ct) diff --git a/PyroFetes/Endpoints/Quotations/DeleteProductFromQuotationEndpoint.cs b/PyroFetes/Endpoints/Quotations/DeleteProductFromQuotationEndpoint.cs index a8578795..c2bcbf5d 100644 --- a/PyroFetes/Endpoints/Quotations/DeleteProductFromQuotationEndpoint.cs +++ b/PyroFetes/Endpoints/Quotations/DeleteProductFromQuotationEndpoint.cs @@ -16,7 +16,7 @@ public class DeleteProductFromQuotationEndpoint(QuotationProductsRepository quot public override void Configure() { Delete("/quotations/{@ProductId}/{@QuotationId}", x => new { x.ProductId, x.QuotationId }); - Roles("Admin"); + Roles("Admin", "Employe"); } public override async Task HandleAsync(DeleteQuotationProductRequest req, CancellationToken ct) diff --git a/PyroFetes/Validators/Users/ConnectUserDtoValidator.cs b/PyroFetes/Validators/Users/ConnectUserDtoValidator.cs new file mode 100644 index 00000000..acf698a9 --- /dev/null +++ b/PyroFetes/Validators/Users/ConnectUserDtoValidator.cs @@ -0,0 +1,23 @@ +using FastEndpoints; +using FluentValidation; +using PyroFetes.DTO.User.Request; + +namespace PyroFetes.Validators.Users; + +public class ConnectUserDtoValidator : Validator +{ + public ConnectUserDtoValidator() + { + RuleFor(x => x.Name) + .NotEmpty() + .WithMessage("Username is required") + .MaximumLength(50) + .WithMessage("Username cannot exceed 50 characters") + .MinimumLength(2) + .WithMessage("Username must exceed 2 characters"); + + RuleFor(x => x.Password) + .NotEmpty() + .WithMessage("Password is required"); + } +} \ No newline at end of file diff --git a/PyroFetes/Validators/Users/CreateUpdateUserDtoValidator.cs b/PyroFetes/Validators/Users/CreateUpdateUserDtoValidator.cs new file mode 100644 index 00000000..f684e03a --- /dev/null +++ b/PyroFetes/Validators/Users/CreateUpdateUserDtoValidator.cs @@ -0,0 +1,26 @@ +using FastEndpoints; +using FluentValidation; +using PyroFetes.DTO.User.Request; + +namespace PyroFetes.Validators.Users; + +public class CreateUpdateUserDtoValidator: Validator +{ + public CreateUpdateUserDtoValidator() + { + RuleFor(x => x.Email) + .NotEmpty() + .WithMessage("L'email est requis") + .MaximumLength(100) + .WithMessage("L'email ne doit pas dépasser plus de 100 caractères") + .EmailAddress() + .WithMessage("Adresse email invalide"); + + RuleFor(x => x.Password) + .NotEmpty() + .WithMessage("Le mot de passe est requis") + .MinimumLength(12) + .WithMessage("Le mot de passe doit contenir au minimum 12 caractères") + .Matches(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*?[#?_!@$%^&*-])"); + } +} \ No newline at end of file diff --git a/PyroFetes/Validators/Users/CreateUserDtoValidator.cs b/PyroFetes/Validators/Users/CreateUserDtoValidator.cs new file mode 100644 index 00000000..e6048b00 --- /dev/null +++ b/PyroFetes/Validators/Users/CreateUserDtoValidator.cs @@ -0,0 +1,26 @@ +using FastEndpoints; +using FluentValidation; +using PyroFetes.DTO.User.Request; + +namespace PyroFetes.Validators.Users; + +public class CreateUserDtoValidator : Validator +{ + public CreateUserDtoValidator() + { + RuleFor(x => x.Email) + .NotEmpty() + .WithMessage("L'email est requis") + .MaximumLength(100) + .WithMessage("L'email ne doit pas dépasser plus de 100 caractères") + .EmailAddress() + .WithMessage("Adresse email invalide"); + + RuleFor(x => x.Password) + .NotEmpty() + .WithMessage("Le mot de passe est requis") + .MinimumLength(12) + .WithMessage("Le mot de passe doit contenir au minimum 12 caractères") + .Matches(@"^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*?[#?_!@$%^&*-])"); + } +} \ No newline at end of file