Refactoring - Version stable
This commit is contained in:
@@ -176,10 +176,16 @@ public class MembreResource {
|
||||
// Conversion DTO vers entité
|
||||
Membre membre = membreService.convertFromCreateRequest(membreDTO);
|
||||
|
||||
// Création du membre — statut EN_ATTENTE_VALIDATION, Keycloak provisionné à
|
||||
// l'approbation
|
||||
// Création du membre — statut EN_ATTENTE_VALIDATION
|
||||
Membre nouveauMembre = membreService.creerMembre(membre);
|
||||
|
||||
// Provisionner le compte Keycloak (non bloquant — l'admin peut activer manuellement)
|
||||
try {
|
||||
keycloakSyncService.provisionKeycloakUser(nouveauMembre.getId());
|
||||
} catch (Exception e) {
|
||||
LOG.warnf("Provisionnement Keycloak échoué pour %s (non bloquant): %s", nouveauMembre.getEmail(), e.getMessage());
|
||||
}
|
||||
|
||||
// Validation périmètre ADMIN_ORGANISATION - lier le membre à l'organisation
|
||||
java.util.Set<String> roles = securityIdentity.getRoles();
|
||||
boolean onlyOrgAdmin = roles != null && roles.contains("ADMIN_ORGANISATION")
|
||||
@@ -668,6 +674,27 @@ public class MembreResource {
|
||||
.build();
|
||||
}
|
||||
|
||||
@PUT
|
||||
@Path("/{id}/activer")
|
||||
@RolesAllowed({"ADMIN", "SUPER_ADMIN"})
|
||||
@Operation(summary = "Activer un membre", description = "Passe le membre en statut ACTIF et lui assigne le rôle MEMBRE_ACTIF dans Keycloak.")
|
||||
@APIResponse(responseCode = "200", description = "Membre activé avec succès")
|
||||
@APIResponse(responseCode = "404", description = "Membre non trouvé")
|
||||
public Response activerMembre(@Parameter(description = "UUID du membre") @PathParam("id") UUID id) {
|
||||
LOG.infof("Activation du membre ID: %s", id);
|
||||
|
||||
Membre membreActive = membreService.activerMembre(id);
|
||||
|
||||
// Assigner le rôle MEMBRE_ACTIF dans Keycloak (non bloquant)
|
||||
try {
|
||||
keycloakSyncService.activerMembreDansKeycloak(id);
|
||||
} catch (Exception e) {
|
||||
LOG.warnf("Activation Keycloak échouée pour %s (non bloquant): %s", membreActive.getEmail(), e.getMessage());
|
||||
}
|
||||
|
||||
return Response.ok(membreService.convertToResponse(membreActive)).build();
|
||||
}
|
||||
|
||||
@GET
|
||||
@Path("/export/count")
|
||||
@Produces(MediaType.APPLICATION_JSON)
|
||||
|
||||
Reference in New Issue
Block a user