Rôles et Permissions
Ce guide explique le système de rôles et permissions de PCH-SIG.
Architecture des permissions
PCH-SIG utilise un système de permissions granulaires basé sur le format :
module.action
Exemples :
menages.view: Voir les ménagesmenages.edit: Modifier les ménagestransferts.cycles_create: Créer des cycles de paiement
Les rôles et leurs permissions sont gérés en base de données via l'entité Role.
Rôles prédéfinis
ROLE_ADMIN — Administrateur
Accès complet au système, y compris l'administration des utilisateurs, rôles, paramètres et audit.
| Module | Permissions |
|---|---|
| Tous | Toutes les permissions |
ROLE_COORDINATEUR — Coordinateur National
Coordination des activités nationales. Accès étendu à la gestion des ménages, bénéficiaires, paiements, programmes, rapports et climat.
| Module | Permissions |
|---|---|
| Ménages | view, create, edit, export, import, validate |
| Bénéficiaires | view, create, edit, export, import |
| Paiements | view, create, validate, export |
| Programmes | view, create, edit |
| Documents | view, create, validate, export |
| Rapports | view, create, export |
| Climat | view, create, edit, export |
ROLE_COORDINATEUR_SANTE — Coordinateur Santé
Coordination des activités liées à la santé. Accès aux programmes, plaintes catégorie santé et rapports.
| Module | Permissions |
|---|---|
| Programmes | view |
| Registre | menages_view, beneficiaires_view |
| Plaintes | view, categorie.sante |
| Rapports | view, generate |
ROLE_SUPERVISEUR — Superviseur Régional
Supervision des activités régionales. Accès en lecture/écriture aux ménages et bénéficiaires, exports et rapports.
| Module | Permissions |
|---|---|
| Ménages | view, create, edit, export, validate |
| Bénéficiaires | view, create, edit, export |
| Paiements | view, export |
| Programmes | view |
| Documents | view, create, export |
| Rapports | view, export |
| Climat | view, export |
ROLE_FIELD_SUPERVISOR — Superviseur de Terrain
Supervision des activités terrain, validation des ménages et gestion des plaintes.
| Module | Permissions |
|---|---|
| Registre | menages_view, menages_edit, menages_validate, beneficiaires_view, doublons_view, doublons_check |
| Plaintes | view, create |
| Données | carte |
| Rapports | view |
ROLE_DB_SPECIALIST — Spécialiste Base de Données
Gestion des utilisateurs, maintenance système, gestion des doublons et intégration KoboToolbox.
| Module | Permissions |
|---|---|
| Admin | users, roles, settings, audit |
| Registre | menages_view, menages_edit, menages_validate, menages_delete, beneficiaires_view, beneficiaires_edit, doublons_*, import, import_template |
| KoboToolbox | view, sync, configure |
| Rapports | view, generate |
ROLE_GESTIONNAIRE_PAIEMENT — Spécialiste Transfert Monétaire
Gestion des paiements, cycles de transfert et réconciliation.
| Module | Permissions |
|---|---|
| Ménages | view |
| Bénéficiaires | view |
| Paiements | view, create, export |
| Programmes | view, create, edit, bailleurs |
| Registre | menages_view, menages_edit, menages_delete, menages_doublons, beneficiaires_view, beneficiaires_edit, eligibilite, documents |
| Transferts | cycles_view, cycles_create, paiements_view, paiements_execute, recurrence, reconciliation |
| Données | kobo, carte |
| Rapports | view |
ROLE_TM_SPECIALIST — Spécialiste Transferts Monétaires
Supervision du programme de transferts monétaires, approbation des inscriptions et paiements.
| Module | Permissions |
|---|---|
| Programmes | view, edit, enroll |
| Registre | menages_view, beneficiaires_view, beneficiaires_edit, eligibilite_view, eligibilite_evaluate |
| Transferts | cycles_view, cycles_create, cycles_edit, cycles_validate, paiements_view, paiements_execute, recurrence, reconciliation, comptes_operateurs_view, comptes_operateurs_edit, cycles_documents |
| Rapports | view, generate |
| Plaintes | view, create, process, close, categorie.protection_sociale |
ROLE_RAF — Responsable Admin & Financier
Gestion administrative et financière, validation des paiements et exports.
| Module | Permissions |
|---|---|
| Ménages | view, export |
| Bénéficiaires | view, export |
| Paiements | view, create, validate, export |
| Programmes | view |
| Rapports | view, create, export |
ROLE_DATA_ENTRY — Opérateur de Saisie
Saisie des données ménages et bénéficiaires.
| Module | Permissions |
|---|---|
| Ménages | view, create, edit |
| Bénéficiaires | view, create, edit |
| Documents | view, create |
ROLE_MA — Mesure Accompagnement
Accompagnement terrain des ménages.
| Module | Permissions |
|---|---|
| Ménages | view, create, edit |
| Bénéficiaires | view, create, edit |
| Documents | view, create |
| Climat | view |
ROLE_SS_SPECIALIST — Spécialiste Sauvegardes Sociales
Gestion et résolution des plaintes, y compris les plaintes sensibles (EAS/HS/VBG).
| Module | Permissions |
|---|---|
| Plaintes | view, create, process, close, sensibles_view, sensibles_manage |
| Registre | menages_view, beneficiaires_view |
| KoboToolbox | view, configure, sync |
| Rapports | view, generate |
ROLE_SSE — Spécialiste Sauvegardes Environnementales
Gestion des plaintes environnementales et accès aux plaintes sensibles.
| Module | Permissions |
|---|---|
| Plaintes | view, create, process, close, sensibles_view, sensibles_manage |
| Registre | menages_view, beneficiaires_view |
| Données | carte |
| KoboToolbox | view |
| Rapports | view, generate |
ROLE_SE — Suivi-Évaluation
Suivi et évaluation des programmes. Accès en lecture et export.
| Module | Permissions |
|---|---|
| Ménages | view, export |
| Bénéficiaires | view, export |
| Paiements | view, export |
| Programmes | view |
| Rapports | view, create, export |
| Climat | view, export |
ROLE_ONG_FOCAL — Point Focal ONG
Point focal des partenaires ONG.
| Module | Permissions |
|---|---|
| Registre | menages_view, menages_edit, beneficiaires_view |
| Plaintes | view, create |
| Données | carte |
| Rapports | view |
ROLE_POINT_FOCAL_ONG — Point Focal ONG (accès limité)
Accès limité aux zones de son ONG.
| Module | Permissions |
|---|---|
| Programmes | view |
| Registre | menages_view, beneficiaires_view |
| Plaintes | view, create |
| Rapports | view |
ROLE_VIEWER — Lecteur
Consultation uniquement, aucune modification possible.
| Module | Permissions |
|---|---|
| Ménages | view |
| Bénéficiaires | view |
| Paiements | view |
| Programmes | view |
| Documents | view |
| Rapports | view |
| Climat | view |
ROLE_USER — Utilisateur
Rôle de base attribué à tout utilisateur authentifié.
| Module | Permissions |
|---|---|
| Ménages | view |
| Bénéficiaires | view |
Liste des modules de permissions
| Module | Description |
|---|---|
menages | Gestion des ménages |
beneficiaires | Gestion des bénéficiaires |
paiements | Gestion des paiements |
programmes | Gestion des programmes |
documents | Documents d'identité |
rapports | Rapports et exports |
climat | Données climatiques |
plaintes | Mécanisme de gestion des réclamations |
administration | Utilisateurs, rôles, paramètres |
registre | Registre social (ménages, bénéficiaires, doublons) |
transferts | Cycles et paiements (vue détaillée) |
kobo | Intégration KoboToolbox |
donnees | Carte SIG et données externes |
suivi_evaluation | Suivi et évaluation |
Vérification des permissions
Côté Backend (Symfony Voter)
// Dans un contrôleur
$this->denyAccessUnlessGranted('menages.edit', $menage);
// Dans un service
if ($this->security->isGranted('transferts.cycles_validate')) {
// ...
}
Côté Frontend (React)
import { usePermissions } from '@/hooks/usePermissions';
function MenageActions({ menage }) {
const { hasPermission } = usePermissions();
return (
<div>
{hasPermission('menages.edit') && (
<Button onClick={() => handleEdit(menage)}>
Modifier
</Button>
)}
</div>
);
}
Créer un rôle personnalisé
Via l'interface
- Accédez à Paramètres > Rôles
- Cliquez sur Nouveau rôle
- Définissez :
- Code : Identifiant technique (ex:
ROLE_SUPERVISEUR) - Nom : Libellé affiché (ex:
Superviseur Régional) - Description : Description du rôle
- Permissions : Cochez les permissions souhaitées
- Code : Identifiant technique (ex:
- Enregistrez
Bonnes pratiques
Principe du moindre privilège
- Attribuer uniquement les permissions nécessaires
- Commencer par un rôle restrictif et ajouter des permissions
- Éviter de donner toutes les permissions sauf pour les administrateurs
Organisation des rôles
- Créer des rôles métier clairs
- Documenter les responsabilités de chaque rôle
- Réviser régulièrement les attributions
Sécurité
- Limiter le nombre d'administrateurs
- Auditer les changements de permissions via le journal d'audit
- Tester les restrictions côté frontend ET backend
- Les plaintes sensibles (EAS/HS/VBG) nécessitent la permission
plaintes.sensibles_view