From 4b2b326afe42667a4884caf8cf949c9643d894b7 Mon Sep 17 00:00:00 2001
From: dahoud <41957584+DahoudG@users.noreply.github.com>
Date: Fri, 17 Apr 2026 19:19:48 +0000
Subject: [PATCH] =?UTF-8?q?refactor:=20nettoyer=20terminologie=20entit?=
=?UTF-8?q?=C3=A9=E2=86=92organisation=20et=20corriger=20mapping=20TONTINE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- ADMIN_ENTITE→ADMIN_ORGANISATION dans Javadoc et README
- OrganisationModuleService: retirer TONTINE de MUTUELLE (BCEAO-réglementé, incompatible)
- Ajouter TONTINE aux ASSOCIATION et CLUB_SERVICE (pratique courante Afrique de l'Ouest)
- V18 migration: aligner modules_requis avec le code Java
---
README.md | 4 ++--
.../server/UnionFlowServerApplication.java | 2 +-
.../server/service/OrganisationModuleService.java | 13 ++++++-------
...ation_Categorie_Type_And_Seed_Official_Types.sql | 4 ++--
4 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index f1fd2b2..2942be1 100644
--- a/README.md
+++ b/README.md
@@ -519,13 +519,13 @@ lionsctl pipeline \
### Authentification
- **Méthode** : OIDC/JWT via Keycloak
-- **Rôles** : SUPER_ADMIN, ADMIN_ENTITE, MEMBRE_ACTIF, MEMBRE
+- **Rôles** : SUPER_ADMIN, ADMIN_ORGANISATION, MEMBRE_ACTIF, MEMBRE
- **Token** : Bearer token dans header `Authorization`
### Endpoints protégés
```java
-@RolesAllowed({"SUPER_ADMIN", "ADMIN_ENTITE"})
+@RolesAllowed({"SUPER_ADMIN", "ADMIN_ORGANISATION"})
@POST
@Path("/budgets")
public Response createBudget(BudgetRequest request) {
diff --git a/src/main/java/dev/lions/unionflow/server/UnionFlowServerApplication.java b/src/main/java/dev/lions/unionflow/server/UnionFlowServerApplication.java
index 1a538d4..6439f61 100644
--- a/src/main/java/dev/lions/unionflow/server/UnionFlowServerApplication.java
+++ b/src/main/java/dev/lions/unionflow/server/UnionFlowServerApplication.java
@@ -82,7 +82,7 @@ import org.jboss.logging.Logger;
*
* - OIDC avec Keycloak (realm: unionflow)
* - JWT signature côté backend (HMAC-SHA256)
- * - RBAC avec rôles: SUPER_ADMIN, ADMIN_ENTITE, MEMBRE
+ * - RBAC avec rôles: SUPER_ADMIN, ADMIN_ORGANISATION, MEMBRE
* - Permissions granulaires par module
* - CORS configuré pour client web
* - HTTPS obligatoire en production
diff --git a/src/main/java/dev/lions/unionflow/server/service/OrganisationModuleService.java b/src/main/java/dev/lions/unionflow/server/service/OrganisationModuleService.java
index 0a4592e..4abc382 100644
--- a/src/main/java/dev/lions/unionflow/server/service/OrganisationModuleService.java
+++ b/src/main/java/dev/lions/unionflow/server/service/OrganisationModuleService.java
@@ -100,12 +100,7 @@ public class OrganisationModuleService {
modules.add("TONTINE");
modules.add("FINANCE");
}
- case "MUTUELLE_EPARGNE" -> {
- modules.add("EPARGNE");
- modules.add("FINANCE");
- modules.add("LCB_FT");
- }
- case "MUTUELLE_CREDIT" -> {
+ case "MUTUELLE", "MUTUELLE_EPARGNE", "MUTUELLE_CREDIT" -> {
modules.add("EPARGNE");
modules.add("CREDIT");
modules.add("FINANCE");
@@ -130,7 +125,11 @@ public class OrganisationModuleService {
case "GIE" -> {
modules.add("FINANCE");
}
- case "ASSOCIATION", "CLUB_SERVICE", "CLUB_SPORTIF", "CLUB_CULTUREL" -> {
+ case "ASSOCIATION", "CLUB_SERVICE" -> {
+ modules.add("TONTINE");
+ modules.add("VOTES");
+ }
+ case "CLUB_SPORTIF", "CLUB_CULTUREL" -> {
modules.add("VOTES");
}
default -> LOG.debugf("Type d''organisation non reconnu pour module mapping : %s", typeOrganisation);
diff --git a/src/main/resources/db/migration/V18__Add_Organisation_Categorie_Type_And_Seed_Official_Types.sql b/src/main/resources/db/migration/V18__Add_Organisation_Categorie_Type_And_Seed_Official_Types.sql
index 4dae0b2..3d884c5 100644
--- a/src/main/resources/db/migration/V18__Add_Organisation_Categorie_Type_And_Seed_Official_Types.sql
+++ b/src/main/resources/db/migration/V18__Add_Organisation_Categorie_Type_And_Seed_Official_Types.sql
@@ -60,8 +60,8 @@ END $$;
INSERT INTO types_reference (id, domaine, libelle, code, categorie, modules_requis, actif, est_defaut, est_systeme, ordre_affichage, date_creation, date_modification, version)
SELECT gen_random_uuid(), 'TYPE_ORGANISATION', v.libelle, v.code, v.categorie, v.modules_requis, true, false, true, 0, NOW(), NOW(), 0
FROM (VALUES
- ('Association Générale', 'ASSOCIATION', 'ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS,VOTES,AIDE'),
- ('Club Service', 'CLUB_SERVICE', 'ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS,VOTES,PROJETS_SOLIDAIRES'),
+ ('Association Générale', 'ASSOCIATION', 'ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS,VOTES,TONTINE,AIDE'),
+ ('Club Service', 'CLUB_SERVICE', 'ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS,VOTES,TONTINE,PROJETS_SOLIDAIRES'),
('Club Sportif', 'CLUB_SPORTIF', 'ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS'),
('Club Culturel', 'CLUB_CULTUREL','ASSOCIATIF', 'MEMBRES,COTISATIONS,EVENEMENTS,COMMUNICATION,DOCUMENTS')
) AS v(libelle, code, categorie, modules_requis)