Refactoring - Version stable

This commit is contained in:
dahoud
2026-03-28 16:51:14 +00:00
parent 4d096a4791
commit 40a2dd9728
5 changed files with 296 additions and 0 deletions

View File

@@ -674,6 +674,33 @@ public class MembreResource {
.build();
}
@PUT
@Path("/{id}/promouvoir-admin-organisation")
@RolesAllowed({"ADMIN", "SUPER_ADMIN"})
@Operation(
summary = "Promouvoir un membre en administrateur d'organisation",
description = "Passe le membre en statut ACTIF et lui assigne le rôle ADMIN_ORGANISATION dans Keycloak. "
+ "Réservé aux super administrateurs de la plateforme. "
+ "Le compte est immédiatement opérationnel sans validation intermédiaire.")
@APIResponse(responseCode = "200", description = "Membre promu administrateur d'organisation")
@APIResponse(responseCode = "404", description = "Membre non trouvé")
@APIResponse(responseCode = "403", description = "Accès réservé aux ADMIN / SUPER_ADMIN")
public Response promouvoirAdminOrganisation(
@Parameter(description = "UUID du membre à promouvoir") @PathParam("id") UUID id) {
LOG.infof("Promotion admin d'organisation pour le membre ID: %s", id);
Membre membrePromu = membreService.promouvoirAdminOrganisation(id);
// Assigner ADMIN_ORGANISATION dans Keycloak (non bloquant)
try {
keycloakSyncService.promouvoirAdminOrganisationDansKeycloak(id);
} catch (Exception e) {
LOG.warnf("Promotion Keycloak échouée pour %s (non bloquant): %s", membrePromu.getEmail(), e.getMessage());
}
return Response.ok(membreService.convertToResponse(membrePromu)).build();
}
@PUT
@Path("/{id}/activer")
@RolesAllowed({"ADMIN", "SUPER_ADMIN"})