Migration complète vers PrimeFaces Freya - Corrections des incompatibilités et intégration de primefaces-freya-extension

This commit is contained in:
lionsdev
2025-12-27 00:18:31 +00:00
parent 03984b50c9
commit 2bc1b0f6a5
49 changed files with 9440 additions and 260 deletions

View File

@@ -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) {