# Configuration Utilisateurs et Rôles - UnionFlow

**Date**: 2026-03-01
**Version**: 1.0.0
**Auteur**: UnionFlow Team

---

## Table des matières

1. [Vue d'ensemble](#vue-densemble)
2. [Organisations de test](#organisations-de-test)
3. [Structure des rôles](#structure-des-rôles)
4. [Comptes utilisateurs](#comptes-utilisateurs)
5. [Matrice de permissions](#matrice-de-permissions)
6. [Guide de test](#guide-de-test)
7. [Instructions techniques](#instructions-techniques)

---

## Vue d'ensemble

Cette documentation décrit la configuration complète des utilisateurs et rôles pour les tests de la plateforme UnionFlow, avec deux organisations types :

- **MUKEFI** — Mutuelle d'épargne et de crédit
- **MESKA** — Association communautaire

**Objectif** : Permettre de tester tous les workflows et cas d'usage de l'application selon les différents profils utilisateurs et types d'organisations.

---

## Organisations de test

### 🏦 MUKEFI - Mutuelle d'Épargne et de Crédit

- **Nom complet**: Mutuelle d'Épargne et de Crédit des Fonctionnaires et Indépendants
- **Type**: `MUTUELLE_EPARGNE_CREDIT`
- **Email**: contact@mukefi.org
- **Téléphone**: +225 07 00 00 00 01
- **Site web**: https://mukefi.org
- **Fondation**: 2020-01-15
- **Enregistrement**: MUT-CI-2020-001

**Modules activés** :
- ✅ Cotisations
- ✅ Épargne & Crédit (MEC)
- ✅ Comptabilité OHADA
- ✅ Documents (1 Go)
- ✅ Notifications multi-canal

**Cas d'usage** :
- Gestion de l'épargne des membres
- Attribution de crédits
- Suivi des remboursements
- Comptabilité SYSCOHADA
- Gestion des cotisations périodiques

---

### 🤝 MESKA - Association Communautaire

- **Nom complet**: Mouvement d'Entraide et de Solidarité de Koumassi et Adjamé
- **Type**: `ASSOCIATION`
- **Email**: contact@meska.org
- **Téléphone**: +225 07 00 00 00 02
- **Site web**: https://meska.org
- **Fondation**: 2018-06-20
- **Enregistrement**: ASSO-CI-2018-045

**Modules activés** :
- ✅ Cotisations
- ✅ Événements
- ✅ Solidarité (aide sociale)
- ✅ Documents (1 Go)
- ✅ Notifications multi-canal

**Cas d'usage** :
- Organisation d'événements communautaires
- Gestion des demandes d'aide sociale
- Solidarité entre membres
- Cotisations des adhérents
- Communication et annonces

---

## Structure des rôles

### Hiérarchie des rôles

```
SUPER_ADMIN (Plateforme)
    ↓
ADMIN_ORGANISATION (Organisation)
    ↓
┌─────────────┬──────────────────┬───────────────────┬─────────────────┐
│ TRESORIER   │ SECRETAIRE       │ RESPONSABLE_SOCIAL│ RESP_EVENEMENTS │
└─────────────┴──────────────────┴───────────────────┴─────────────────┘
    ↓              ↓                    ↓                   ↓
RESPONSABLE_CREDIT (Mutuelles)
    ↓
MEMBRE_BUREAU
    ↓
MEMBRE_ACTIF
    ↓
MEMBRE_SIMPLE
```

### Descriptions détaillées

#### 🔧 SUPER_ADMIN
- **Description**: Super administrateur - Accès total plateforme multi-organisations
- **Portée**: Toute la plateforme
- **Droits**: Gestion de toutes les organisations, configuration système, utilisateurs Keycloak
- **Nombre recommandé**: 1-2 par plateforme

#### 👨‍💼 ADMIN_ORGANISATION
- **Description**: Administrateur d'une organisation - Accès total à son organisation
- **Portée**: Une organisation spécifique
- **Droits**: Gestion complète de l'organisation (membres, finances, événements, etc.)
- **Nombre recommandé**: 1-3 par organisation

#### 💰 TRESORIER
- **Description**: Trésorier - Gestion financière, comptabilité, épargne/crédit
- **Portée**: Finances de l'organisation
- **Droits**: Comptabilité, trésorerie, budgets, rapports financiers
- **Nombre recommandé**: 1-2 par organisation

#### 📝 SECRETAIRE
- **Description**: Secrétaire - Gestion administrative, membres, adhésions, documents
- **Portée**: Administration de l'organisation
- **Droits**: Membres, adhésions, documents, communication, événements
- **Nombre recommandé**: 1-2 par organisation

#### ❤️ RESPONSABLE_SOCIAL
- **Description**: Responsable social - Gestion aide sociale et solidarité
- **Portée**: Aide sociale de l'organisation
- **Droits**: Demandes d'aide, évaluation sociale, suivi bénéficiaires, fonds de solidarité
- **Nombre recommandé**: 1-2 par association

#### 📅 RESPONSABLE_EVENEMENTS
- **Description**: Responsable événements - Gestion événements et logistique
- **Portée**: Événements de l'organisation
- **Droits**: Création événements, planification, logistique, participations
- **Nombre recommandé**: 1-2 par association

#### 🏦 RESPONSABLE_CREDIT
- **Description**: Responsable crédit - Gestion épargne/crédit (mutuelles)
- **Portée**: Épargne et crédit (mutuelles uniquement)
- **Droits**: Demandes de crédit, épargne, remboursements
- **Nombre recommandé**: 1-2 par mutuelle

#### 🎖️ MEMBRE_BUREAU
- **Description**: Membre du bureau - Accès étendu consultation et actions
- **Portée**: Organisation
- **Droits**: Consultation étendue, participation aux décisions
- **Nombre recommandé**: 3-10 par organisation

#### ✅ MEMBRE_ACTIF
- **Description**: Membre actif - Consultation et actions de base
- **Portée**: Organisation
- **Droits**: Profil, événements, documents partagés, cotisations
- **Nombre recommandé**: Illimité

#### 👤 MEMBRE_SIMPLE
- **Description**: Membre simple - Consultation uniquement
- **Portée**: Organisation
- **Droits**: Consultation de son profil et informations publiques
- **Nombre recommandé**: Illimité

---

## Comptes utilisateurs

### 🔧 Super-Admin

| Username | Email | Mot de passe | Rôle | Organisation |
|----------|-------|--------------|------|--------------|
| `superadmin` | superadmin@unionflow.test | `Test@123` | SUPER_ADMIN | - (Toutes) |

**Usage** : Administration plateforme, gestion multi-organisations, configuration système

---

### 🏦 Comptes MUKEFI (Mutuelle)

| Username | Email | Mot de passe | Rôle | Fonction |
|----------|-------|--------------|------|----------|
| `admin.mukefi` | admin.mukefi@unionflow.test | `Test@123` | ADMIN_ORGANISATION | Administrateur MUKEFI |
| `tresorier.mukefi` | tresorier.mukefi@unionflow.test | `Test@123` | TRESORIER | Trésorier MUKEFI |
| `secretaire.mukefi` | secretaire.mukefi@unionflow.test | `Test@123` | SECRETAIRE | Secrétaire MUKEFI |
| `credit.mukefi` | credit.mukefi@unionflow.test | `Test@123` | RESPONSABLE_CREDIT | Responsable Crédit MUKEFI |
| `membre.mukefi` | membre.mukefi@unionflow.test | `Test@123` | MEMBRE_ACTIF | Membre actif MUKEFI |

---

### 🤝 Comptes MESKA (Association)

| Username | Email | Mot de passe | Rôle | Fonction |
|----------|-------|--------------|------|----------|
| `admin.meska` | admin.meska@unionflow.test | `Test@123` | ADMIN_ORGANISATION | Administrateur MESKA |
| `secretaire.meska` | secretaire.meska@unionflow.test | `Test@123` | SECRETAIRE | Secrétaire MESKA |
| `social.meska` | social.meska@unionflow.test | `Test@123` | RESPONSABLE_SOCIAL | Responsable Social MESKA |
| `evenements.meska` | evenements.meska@unionflow.test | `Test@123` | RESPONSABLE_EVENEMENTS | Responsable Événements MESKA |
| `membre.meska` | membre.meska@unionflow.test | `Test@123` | MEMBRE_ACTIF | Membre actif MESKA |

---

## Matrice de permissions

### Légende
- ✅ = Accès complet (lecture + écriture)
- 👁️ = Lecture seule
- ❌ = Pas d'accès

### Matrice complète

| Menu / Fonctionnalité | SUPER_ADMIN | ADMIN_ORG | TRESO | SECRE | R_SOCIAL | R_EVENT | R_CREDIT | M_BUREAU | M_ACTIF | M_SIMPLE |
|----------------------|-------------|-----------|-------|-------|----------|---------|----------|----------|---------|----------|
| **Dashboard** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | 👁️ |
| **Super Administration** | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Dashboard Super-Admin | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Gestion Entités | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Types d'Organisation | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Configuration Système | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Administration** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Gestion Cotisations | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Paramètres Système | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Rôles Applicatifs | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Audit Applicatif | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Utilisateurs Keycloak | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Gestion des Membres** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | 👁️ | ❌ |
| ↳ Nouvelle Inscription | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Liste des Membres | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | 👁️ | ❌ |
| ↳ Import/Export Membres | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Organisations** | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Adhésions** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Validation Adhésions | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Cartes de Membres | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Gestion Financière** | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| ↳ Cotisations | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ✅ | ❌ | ❌ |
| ↳ Relances | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Budgets | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Trésorerie | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Comptabilité | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Épargne/Crédit | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ |
| **Aide Sociale** | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Nouvelle Demande | ✅ | ✅ | ❌ | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Traitement Demandes | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Évaluation Sociale | ✅ | ✅ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Fonds de Solidarité | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Événements** | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | 👁️ | ❌ |
| ↳ Nouvel Événement | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| ↳ Planification | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| ↳ Logistique | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
| ↳ Calendrier | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | 👁️ | ❌ |
| **Communication** | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ✅ | ❌ | ❌ |
| ↳ SMS/Email en masse | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Annonces | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Documents** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| ↳ Modèles/Templates | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Archivage | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Signatures Électroniques | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Formation** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | 👁️ | ❌ |
| **Rapports et Analyses** | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Rapport Financier | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Exports Personnalisés | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Outils** | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ |
| ↳ Imports de Données | ✅ | ✅ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Sauvegardes | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ Maintenance | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| ↳ APIs Externes | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| **Mon Espace Personnel** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| **Aide et Support** | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |

---

## Guide de test

### Scénarios de test par organisation

#### 🏦 MUKEFI (Mutuelle) - Scénarios de test

##### Scénario 1 : Demande de crédit (Membre → Responsable Crédit → Trésorier)

1. **Connexion** : `membre.mukefi` / `Test@123`
   - ✅ Vérifier que seuls les menus "Mon Espace Personnel" et "Événements" (lecture) sont visibles
   - ✅ Aller dans "Mon Profil" → Vérifier les informations
   - ❌ Tenter d'accéder à "Gestion Financière" → Doit être bloqué

2. **Connexion** : `credit.mukefi` / `Test@123`
   - ✅ Menu "Gestion Financière" → "Trésorerie" visible
   - ✅ Créer une nouvelle demande de crédit
   - ✅ Vérifier la liste des demandes en attente
   - ❌ Accès "Comptabilité" → Doit être bloqué (réservé au trésorier)

3. **Connexion** : `tresorier.mukefi` / `Test@123`
   - ✅ Accéder à "Gestion Financière" → "Comptabilité"
   - ✅ Valider la demande de crédit
   - ✅ Générer un rapport financier
   - ✅ Vérifier les bilans

##### Scénario 2 : Inscription d'un nouveau membre (Secrétaire)

1. **Connexion** : `secretaire.mukefi` / `Test@123`
   - ✅ Menu "Gestion des Membres" → "Nouvelle Inscription"
   - ✅ Remplir le formulaire d'inscription
   - ✅ Uploader les documents requis
   - ✅ Aller dans "Adhésions" → "Validation des Demandes"
   - ✅ Valider l'adhésion du nouveau membre
   - ✅ Imprimer la carte de membre

##### Scénario 3 : Gestion complète (Admin Organisation)

1. **Connexion** : `admin.mukefi` / `Test@123`
   - ✅ Vérifier que TOUS les menus sont visibles sauf "Super Administration"
   - ✅ Dashboard → Consulter les KPIs de la mutuelle
   - ✅ Membres → Voir la liste complète
   - ✅ Finances → Consulter la trésorerie
   - ✅ Rapports → Générer le rapport mensuel

---

#### 🤝 MESKA (Association) - Scénarios de test

##### Scénario 1 : Organisation d'un événement communautaire

1. **Connexion** : `evenements.meska` / `Test@123`
   - ✅ Menu "Événements" → "Nouvel Événement"
   - ✅ Créer un événement "Journée de solidarité"
   - ✅ Définir la date, lieu, nombre de participants
   - ✅ Aller dans "Logistique"
   - ✅ Planifier les besoins matériels
   - ✅ Envoyer les invitations

2. **Connexion** : `membre.meska` / `Test@123`
   - ✅ Menu "Événements" → "Calendrier"
   - ✅ Voir l'événement "Journée de solidarité"
   - ✅ S'inscrire à l'événement
   - ❌ Tenter de modifier l'événement → Doit être bloqué

##### Scénario 2 : Demande d'aide sociale

1. **Connexion** : `membre.meska` / `Test@123`
   - ✅ Menu "Aide Sociale" → "Nouvelle Demande"
   - ✅ Remplir le formulaire de demande d'aide
   - ✅ Uploader les justificatifs
   - ✅ Soumettre la demande

2. **Connexion** : `social.meska` / `Test@123`
   - ✅ Menu "Aide Sociale" → "Traitement des Demandes"
   - ✅ Voir la nouvelle demande
   - ✅ Accéder à "Évaluation Sociale"
   - ✅ Évaluer la situation du demandeur
   - ✅ Approuver ou rejeter la demande
   - ✅ Définir le montant de l'aide

3. **Connexion** : `admin.meska` / `Test@123`
   - ✅ Valider l'aide approuvée par le responsable social
   - ✅ Vérifier le fonds de solidarité

##### Scénario 3 : Communication avec les membres

1. **Connexion** : `secretaire.meska` / `Test@123`
   - ✅ Menu "Communication" → "Annonces Officielles"
   - ✅ Créer une annonce pour l'assemblée générale
   - ✅ Aller dans "Campagnes Email"
   - ✅ Envoyer un email à tous les membres
   - ✅ Menu "Documents" → "Modèles et Templates"
   - ✅ Créer un modèle de convocation

---

### Tests de sécurité

#### Test 1 : Élévation de privilèges

1. Connexion avec `membre.mukefi`
2. Tenter d'accéder directement aux URLs réservées :
   - `/pages/admin/cotisations/gestion` → ❌ Doit être bloqué
   - `/pages/super-admin/dashboard` → ❌ Doit être bloqué
   - `/pages/admin/users` → ❌ Doit être bloqué

#### Test 2 : Séparation des organisations

1. Connexion avec `admin.mukefi`
2. Tenter de voir les membres de MESKA → ❌ Doit être bloqué
3. Tenter de modifier une organisation autre que MUKEFI → ❌ Doit être bloqué

#### Test 3 : Isolation des rôles

1. Connexion avec `tresorier.mukefi`
2. Tenter d'accéder à "Gestion des Membres" → ❌ Doit être bloqué
3. Tenter d'accéder à "Événements" → ❌ Doit être bloqué

---

## Instructions techniques

### Prérequis

- **Keycloak** : En cours d'exécution sur `http://localhost:8180`
- **Backend UnionFlow** : En cours d'exécution sur `http://localhost:8085`
- **Frontend UnionFlow** : En cours d'exécution sur `http://localhost:8086`
- **Base de données** : PostgreSQL avec migrations Flyway exécutées

### Installation

#### 1. Configuration Keycloak

```bash
# Exécuter le script de configuration Keycloak
cd unionflow/scripts
bash keycloak-setup.sh
```

**Résultat attendu** :
- ✅ 10 rôles créés
- ✅ 11 utilisateurs créés
- ✅ Rôles assignés correctement

#### 2. Création des organisations en base de données

**Option A : Via migration Flyway** (Recommandé)

```bash
# Redémarrer le backend pour exécuter la migration V3.0
# La migration V3.0__create_test_organisations.sql sera exécutée automatiquement
```

**Option B : Via SQL direct**

```bash
# Se connecter à PostgreSQL
psql -h localhost -U skyfile -d unionflow

# Exécuter le script SQL
\i unionflow/scripts/create-organisations.sql
```

**Résultat attendu** :
- ✅ Organisation MUKEFI créée
- ✅ Organisation MESKA créée

#### 3. Vérification

1. **Accéder à Keycloak Admin Console**
   - URL : `http://localhost:8180/admin`
   - Realm : `unionflow`
   - Vérifier que tous les utilisateurs et rôles sont présents

2. **Tester la connexion**
   - Aller sur `http://localhost:8086`
   - Se connecter avec `admin.mukefi` / `Test@123`
   - Vérifier que les menus appropriés sont visibles

### Structure des fichiers

```
unionflow/
├── scripts/
│   ├── keycloak-setup.sh              # Configuration Keycloak
│   ├── keycloak-setup.ps1             # Version PowerShell
│   ├── keycloak-setup.py              # Version Python
│   ├── create-organisations.sql        # SQL pour organisations
│   └── create-organisations-api.sh     # Création via API
├── unionflow-server-impl-quarkus/
│   └── src/main/resources/db/migration/
│       └── V3.0__create_test_organisations.sql
├── unionflow-client-quarkus-primefaces-freya/
│   ├── src/main/java/dev/lions/unionflow/client/bean/
│   │   └── MenuBean.java               # Logique de visibilité
│   └── src/main/resources/META-INF/resources/templates/components/layout/
│       └── menu.xhtml                  # Menu avec permissions
└── docs/
    └── CONFIGURATION_UTILISATEURS_ROLES.md  # Cette documentation
```

### Dépannage

#### Problème : Les menus ne s'affichent pas correctement

**Solution** :
1. Vérifier que le JWT contient les rôles :
   ```bash
   # Décoder le JWT sur https://jwt.io
   # Vérifier la présence de "groups": ["ADMIN_ORGANISATION", ...]
   ```

2. Vérifier les logs du backend :
   ```bash
   # Chercher les erreurs OIDC
   grep -i "oidc\|jwt\|role" logs/unionflow-server.log
   ```

#### Problème : Impossible de se connecter

**Solution** :
1. Vérifier que Keycloak est accessible
2. Vérifier que le client `unionflow-server` est configuré
3. Vérifier le secret du client dans `application.properties`

#### Problème : Organisations non créées

**Solution** :
1. Vérifier que Flyway a exécuté la migration V3.0
2. Vérifier les logs Flyway au démarrage du backend
3. Exécuter manuellement le SQL si nécessaire

---

## Conclusion

Cette configuration complète permet de tester tous les workflows de UnionFlow avec des cas d'usage réalistes pour deux types d'organisations différents :

- **MUKEFI** (Mutuelle) : Focus sur l'épargne, le crédit et la comptabilité
- **MESKA** (Association) : Focus sur les événements et la solidarité

Chaque rôle a des permissions spécifiques qui permettent de valider la séparation des responsabilités et la sécurité de l'application.

**Prochaines étapes** :
1. Tester tous les scénarios documentés
2. Identifier les bugs ou incohérences
3. Ajuster les permissions si nécessaire
4. Documenter les cas d'usage supplémentaires

---

**Contact** : UnionFlow Team
**Version** : 1.0.0
**Dernière mise à jour** : 2026-03-01
