diff --git a/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java b/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java index e7987b7..b18f296 100644 --- a/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java +++ b/src/main/java/dev/lions/unionflow/client/bean/MenuBean.java @@ -616,6 +616,36 @@ public class MenuBean implements Serializable { hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION"); } + // ======================================================================== + // Pages conformité (Sprint 8 — backend P1-NEW-7 / P2-NEW-3 / P1-NEW-15) + // ======================================================================== + + /** + * Tableau de bord conformité — Compliance Officer / Contrôleur Interne / direction. + * @since 2026-04-25 + */ + public boolean isConformiteDashboardVisible() { + return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "PRESIDENT", + "TRESORIER", "COMPLIANCE_OFFICER", "CONTROLEUR_INTERNE"); + } + + /** + * Rapports trimestriels Contrôleur Interne — restreint contrôleur + président + admin. + * @since 2026-04-25 + */ + public boolean isRapportsTrimestrielsVisible() { + return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "PRESIDENT", + "CONTROLEUR_INTERNE"); + } + + /** + * PI-SPI Readiness — admin technique uniquement. + * @since 2026-04-25 + */ + public boolean isPispiReadinessVisible() { + return hasAnyRole("SUPER_ADMIN", "COMPLIANCE_OFFICER"); + } + /** * Retourne true si l'organisation active dispose d'au moins un module métier spécifique * (au-delà des modules communs toujours disponibles). diff --git a/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml b/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml index 9e0ec35..3762444 100644 --- a/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml +++ b/src/main/resources/META-INF/resources/templates/components/layout/menu.xhtml @@ -107,6 +107,15 @@ + + + + + + + + +