refactor: toilettage intégral menu et suppression système entités

Supprimé:
- EntitesGestionBean.java (doublon de OrganisationsBean)
- pages/super-admin/entites/ (gestion.xhtml + gestion-enhanced.xhtml)
- pages/super-admin/organisations.xhtml (doublon mort)

Menu restructuré:
- 32→17 sous-menus, 0 lien mort (était 22 url="#")
- Fusionné Annuaire+Gestion Membres en un seul sous-menu contextuel
- Supprimé sous-menu Administration (fourre-tout, doublons redistribués)
- Supprimé sous-menu Formations (inutile, pointait vers dashboard)
- Modules non implémentés: item unique "Bientôt disponible" disabled
- Aide et Support: 9→3 items, Mon Espace: 8→4 items
- Documents: 7→1 item (seul fonctionnel conservé)

Nettoyé:
- ADMIN_ENTITE→ADMIN_ORGANISATION dans scripts, docs, Javadoc
- 3 méthodes @Deprecated supprimées dans MenuBean
- faces-config.xml: 5 rules entite*→3 rules organisation*
- SuperAdminBean: constantes+méthodes entite→organisation
This commit is contained in:
dahoud
2026-04-17 19:20:19 +00:00
parent 4735c1633f
commit 634cc5e30d
16 changed files with 163 additions and 2782 deletions

View File

@@ -85,7 +85,7 @@ import org.jboss.logging.Logger;
* <li>OIDC avec Keycloak (realm: unionflow)</li>
* <li>JWT dans HTTP-only cookies (protection XSS)</li>
* <li>CSRF protection avec PrimeFaces ViewState</li>
* <li>RBAC avec rôles: SUPER_ADMIN, ADMIN_ENTITE, MEMBRE</li>
* <li>RBAC avec rôles: SUPER_ADMIN, ADMIN_ORGANISATION, MEMBRE</li>
* <li>ViewExpiredException handling pour timeout session</li>
* <li>HTTPS obligatoire en production</li>
* <li>Content Security Policy headers</li>

View File

@@ -152,15 +152,6 @@ public class MenuBean implements Serializable {
// MEMBRE_ACTIF retiré intentionnellement pour raisons UX et RGPD
}
/**
* DEPRECATED: Utilisez isGestionMembresMenuVisible() ou isAnnuaireMembresVisible()
* @deprecated Remplacé par isGestionMembresMenuVisible() et isAnnuaireMembresVisible()
*/
@Deprecated
public boolean isMembresMenuVisible() {
return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "SECRETAIRE", "MEMBRE_BUREAU", "MEMBRE_ACTIF");
}
/**
* Gestion Financière - Administration finances (trésorerie, budgets, comptabilité)
* Visible pour TRESORIER et ADMIN uniquement
@@ -199,33 +190,6 @@ public class MenuBean implements Serializable {
return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "SECRETAIRE", "MEMBRE_BUREAU");
}
/**
* DEPRECATED: Utilisez isGestionFinancesMenuVisible() ou isMesFinancesMenuVisible()
* @deprecated Remplacé par isGestionFinancesMenuVisible() (admin) et isMesFinancesMenuVisible() (membre)
*/
@Deprecated
public boolean isFinancesMenuVisible() {
return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "TRESORIER", "RESPONSABLE_CREDIT", "MEMBRE_BUREAU");
}
/**
* DEPRECATED: Utilisez isGestionAidesSocialesMenuVisible() ou isMesAidesSocialesMenuVisible()
* @deprecated Remplacé par isGestionAidesSocialesMenuVisible() (admin) et isMesAidesSocialesMenuVisible() (membre)
*/
@Deprecated
public boolean isAidesMenuVisible() {
return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "RESPONSABLE_SOCIAL", "SECRETAIRE", "MEMBRE_BUREAU");
}
/**
* DEPRECATED: Utilisez isGestionEvenementsMenuVisible() ou isMesEvenementsMenuVisible()
* @deprecated Remplacé par isGestionEvenementsMenuVisible() (admin) et isMesEvenementsMenuVisible() (membre)
*/
@Deprecated
public boolean isEvenementsMenuVisible() {
return hasAnyRole("SUPER_ADMIN", "ADMIN_ORGANISATION", "RESPONSABLE_EVENEMENTS", "SECRETAIRE", "MEMBRE_BUREAU", "MEMBRE_ACTIF");
}
/**
* Communication - Visible pour admins, secrétaires, bureau
*/

View File

@@ -127,8 +127,8 @@ public class NavigationBean implements Serializable {
return "Tableau de Bord";
} else if (viewId.contains("membres")) {
return "Gestion des Membres";
} else if (viewId.contains("entites")) {
return "Gestion des Entités";
} else if (viewId.contains("organisation")) {
return "Gestion des Organisations";
} else if (viewId.contains("configuration")) {
return "Configuration";
} else if (viewId.contains("rapports")) {

View File

@@ -37,8 +37,8 @@ public class SuperAdminBean implements Serializable {
private static final Logger LOG = Logger.getLogger(SuperAdminBean.class);
// Constantes de navigation outcomes (WOU/DRY - réutilisables)
private static final String OUTCOME_ENTITE_NOUVELLE = "entiteNouvellePage";
private static final String OUTCOME_ENTITE_GESTION = "entiteGestionPage";
private static final String OUTCOME_ORGANISATION_NOUVELLE = "organisationNouvellePage";
private static final String OUTCOME_ORGANISATION_GESTION = "organisationGestionPage";
private static final String OUTCOME_SUPER_ADMIN_RAPPORTS = "superAdminRapportsPage";
private static final String OUTCOME_SUPER_ADMIN_CONFIGURATION = "superAdminConfigurationPage";
private static final String OUTCOME_SUPER_ADMIN_ALERTES = "superAdminAlertesPage";
@@ -431,12 +431,12 @@ public class SuperAdminBean implements Serializable {
}
// Actions (WOU/DRY - utilisation de navigation outcomes)
public String creerEntite() {
return OUTCOME_ENTITE_NOUVELLE + "?faces-redirect=true";
public String creerOrganisation() {
return OUTCOME_ORGANISATION_NOUVELLE + "?faces-redirect=true";
}
public String gererEntites() {
return OUTCOME_ENTITE_GESTION + "?faces-redirect=true";
public String gererOrganisations() {
return OUTCOME_ORGANISATION_GESTION + "?faces-redirect=true";
}
public String genererRapport() {