Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension
This commit is contained in:
@@ -4,6 +4,7 @@ import dev.lions.user.manager.dto.user.UserDTO;
|
||||
import dev.lions.user.manager.dto.user.UserSearchCriteriaDTO;
|
||||
import dev.lions.user.manager.dto.user.UserSearchResultDTO;
|
||||
import dev.lions.user.manager.service.UserService;
|
||||
import jakarta.annotation.security.PermitAll;
|
||||
import jakarta.annotation.security.RolesAllowed;
|
||||
import jakarta.inject.Inject;
|
||||
import jakarta.validation.Valid;
|
||||
@@ -31,6 +32,7 @@ import java.util.List;
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
@Consumes(MediaType.APPLICATION_JSON)
|
||||
@Tag(name = "Users", description = "Gestion des utilisateurs Keycloak")
|
||||
@PermitAll // DEV: Permet l'accès sans authentification (écrasé par @RolesAllowed sur les méthodes en PROD)
|
||||
@Slf4j
|
||||
public class UserResource {
|
||||
|
||||
@@ -162,12 +164,44 @@ public class UserResource {
|
||||
@RolesAllowed({"admin", "user_manager"})
|
||||
public Response updateUser(
|
||||
@PathParam("userId") @NotBlank String userId,
|
||||
@Valid @NotNull UserDTO user,
|
||||
@NotNull UserDTO user,
|
||||
@QueryParam("realm") @NotBlank String realmName
|
||||
) {
|
||||
log.info("PUT /api/users/{} - Mise à jour", userId);
|
||||
|
||||
try {
|
||||
// Validation manuelle des champs obligatoires
|
||||
if (user.getPrenom() == null || user.getPrenom().trim().isEmpty()) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("Le prénom est obligatoire"))
|
||||
.build();
|
||||
}
|
||||
if (user.getPrenom().length() < 2 || user.getPrenom().length() > 100) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("Le prénom doit contenir entre 2 et 100 caractères"))
|
||||
.build();
|
||||
}
|
||||
if (user.getNom() == null || user.getNom().trim().isEmpty()) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("Le nom est obligatoire"))
|
||||
.build();
|
||||
}
|
||||
if (user.getNom().length() < 2 || user.getNom().length() > 100) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("Le nom doit contenir entre 2 et 100 caractères"))
|
||||
.build();
|
||||
}
|
||||
if (user.getEmail() == null || user.getEmail().trim().isEmpty()) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("L'email est obligatoire"))
|
||||
.build();
|
||||
}
|
||||
if (!user.getEmail().matches("^[A-Za-z0-9+_.-]+@(.+)$")) {
|
||||
return Response.status(Response.Status.BAD_REQUEST)
|
||||
.entity(new ErrorResponse("Format d'email invalide"))
|
||||
.build();
|
||||
}
|
||||
|
||||
UserDTO updatedUser = userService.updateUser(userId, user, realmName);
|
||||
return Response.ok(updatedUser).build();
|
||||
} catch (RuntimeException e) {
|
||||
|
||||
Reference in New Issue
Block a user