- 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
531 lines
21 KiB
Markdown
531 lines
21 KiB
Markdown
# 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
|