Refactoring - Version stable

This commit is contained in:
dahoud
2026-03-28 15:15:24 +00:00
parent 607d31d2fc
commit 4d096a4791
4 changed files with 158 additions and 12 deletions

View File

@@ -84,18 +84,40 @@ public class MembreService {
throw new IllegalArgumentException("Un membre avec ce numéro existe déjà");
}
// Forcer le statut d'attente — le compte est activé uniquement après validation
// admin
// Forcer l'activation pour les tests E2E (normalement géré par validation
// admin)
membre.setStatutCompte("ACTIF");
membre.setActif(true);
// Statut initial : en attente de validation admin
// L'activation (ACTIF + Keycloak MEMBRE_ACTIF) se fait via PUT /api/membres/{id}/activer
membre.setStatutCompte("EN_ATTENTE_VALIDATION");
membre.setActif(false);
membreRepository.persist(membre);
LOG.infof("Membre créé en attente de validation: %s (ID: %s)", membre.getNomComplet(), membre.getId());
return membre;
}
/**
* Active un membre : passe son statut à ACTIF et son flag actif à true.
* Doit être suivi d'un appel à MembreKeycloakSyncService.activerMembreDansKeycloak()
* pour que le rôle MEMBRE_ACTIF soit assigné dans Keycloak.
*
* @param membreId UUID du membre à activer
* @return Le membre mis à jour
* @throws jakarta.ws.rs.NotFoundException si le membre est introuvable
*/
@Transactional
public Membre activerMembre(UUID membreId) {
LOG.infof("Activation du membre ID: %s", membreId);
Membre membre = membreRepository.findByIdOptional(membreId)
.orElseThrow(() -> new jakarta.ws.rs.NotFoundException("Membre non trouvé avec l'ID: " + membreId));
membre.setStatutCompte("ACTIF");
membre.setActif(true);
membreRepository.persist(membre);
LOG.infof("Membre activé avec succès: %s (ID: %s)", membre.getNomComplet(), membreId);
return membre;
}
/** Met à jour un membre existant */
@Transactional
public Membre mettreAJourMembre(UUID id, Membre membreModifie) {