Files
unionflow-server-impl-quarkus/src/main/java/dev/lions/unionflow/server/security/RoleConstant.java
dahoud a2dfae9a0b fix(security): audit RBAC complet v3.0 — rôles normalisés, lifecycle, changement mdp mobile
RBAC:
- HealthResource: @PermitAll
- RoleResource: @RolesAllowed ADMIN/SUPER_ADMIN/ADMIN_ORGANISATION class-level
- PropositionAideResource: @RolesAllowed MEMBRE/USER class-level
- AuthCallbackResource: @PermitAll
- EvenementResource: @PermitAll /publics et /test, count restreint
- BackupResource/LogsMonitoringResource/SystemResource: MODERATOR → MODERATEUR
- AnalyticsResource: MANAGER/MEMBER → ADMIN_ORGANISATION/MEMBRE
- RoleConstant.java: constantes de rôles centralisées

Cycle de vie membres:
- MemberLifecycleService: ajouterMembre()/retirerMembre() sur activation/radiation/archivage
- MembreResource: endpoint GET /numero/{numeroMembre}
- MembreService: méthode trouverParNumeroMembre()

Changement mot de passe:
- CompteAdherentResource: endpoint POST /auth/change-password (mobile)
- MembreKeycloakSyncService: changerMotDePasseDirectKeycloak() via API Admin Keycloak directe
- Fallback automatique si lions-user-manager indisponible

Workflow:
- Flyway V17-V23: rôles, types org, formules Option C, lifecycle columns, bareme cotisation
- Nouvelles classes: MemberLifecycleService, OrganisationModuleService, scheduler
- Security: OrganisationContextFilter, OrganisationContextHolder, ModuleAccessFilter
2026-04-07 20:52:26 +00:00

43 lines
2.6 KiB
Java

package dev.lions.unionflow.server.security;
/**
* Constantes centralisées pour les rôles UnionFlow.
*
* <p>Utiliser ces constantes dans {@code @RolesAllowed} pour éviter
* les fautes de frappe et garantir la cohérence entre ressources.</p>
*/
public final class RoleConstant {
// ── Rôles système ─────────────────────────────────────────────────────────
public static final String SUPER_ADMIN = "SUPER_ADMIN";
public static final String ADMIN = "ADMIN";
// ── Rôles organisation ────────────────────────────────────────────────────
public static final String ADMIN_ORGANISATION = "ADMIN_ORGANISATION";
public static final String PRESIDENT = "PRESIDENT";
public static final String VICE_PRESIDENT = "VICE_PRESIDENT";
public static final String SECRETAIRE = "SECRETAIRE";
public static final String TRESORIER = "TRESORIER";
public static final String MODERATEUR = "MODERATEUR";
// ── Rôles membres ─────────────────────────────────────────────────────────
public static final String MEMBRE = "MEMBRE";
public static final String USER = "USER";
// ── Rôles fonctionnels (événements) ───────────────────────────────────────
public static final String ORGANISATEUR_EVENEMENT = "ORGANISATEUR_EVENEMENT";
// ── Rôles modules spécialisés ─────────────────────────────────────────────
public static final String TONTINE_RESP = "TONTINE_RESP";
public static final String MUTUELLE_RESP = "MUTUELLE_RESP";
public static final String VOTE_RESP = "VOTE_RESP";
public static final String COOP_RESP = "COOP_RESP";
public static final String ONG_RESP = "ONG_RESP";
public static final String CULTE_RESP = "CULTE_RESP";
public static final String REGISTRE_RESP = "REGISTRE_RESP";
public static final String AGRI_RESP = "AGRI_RESP";
public static final String COLLECTE_RESP = "COLLECTE_RESP";
private RoleConstant() {}
}