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
43 lines
2.6 KiB
Java
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() {}
|
|
}
|