feat: WebSocket temps réel + Finance Workflow + corrections
- Task #6: WebSocket /ws/dashboard + Kafka events (5 topics) * Backend: KafkaEventProducer, KafkaEventConsumer * Mobile: WebSocketService (reconnection, heartbeat, typed events) * DashboardBloc: Auto-refresh depuis WebSocket events - Finance Workflow: approbations + budgets (backend + mobile) * Backend: entities, services, resources, migrations Flyway V6 * Mobile: features finance_workflow complète avec BLoC - Corrections DI: interfaces IRepository partout * IProfileRepository, IOrganizationRepository, IMembreRepository * GetIt configuré avec @injectable - Spec-Kit: constitution + templates mis à jour * .specify/memory/constitution.md enrichie * Templates agent, plan, spec, tasks, checklist - Nettoyage: fichiers temporaires supprimés Signed-off-by: lions dev Team
This commit is contained in:
530
unionflow/docs/CONFIGURATION_UTILISATEURS_ROLES.md
Normal file
530
unionflow/docs/CONFIGURATION_UTILISATEURS_ROLES.md
Normal file
@@ -0,0 +1,530 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user