Files
unionflow-server-api/unionflow/docs/CONFIGURATION_UTILISATEURS_ROLES.md
dahoud e8ad874015 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
2026-03-15 02:12:17 +00:00

21 KiB

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
  2. Organisations de test
  3. Structure des rôles
  4. Comptes utilisateurs
  5. Matrice de permissions
  6. Guide de test
  7. 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

# 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é)

# 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

# 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 :

    # Décoder le JWT sur https://jwt.io
    # Vérifier la présence de "groups": ["ADMIN_ORGANISATION", ...]
    
  2. Vérifier les logs du backend :

    # 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