Aller au contenu principal

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énages
  • menages.edit : Modifier les ménages
  • transferts.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.

ModulePermissions
TousToutes 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.

ModulePermissions
Ménagesview, create, edit, export, import, validate
Bénéficiairesview, create, edit, export, import
Paiementsview, create, validate, export
Programmesview, create, edit
Documentsview, create, validate, export
Rapportsview, create, export
Climatview, 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.

ModulePermissions
Programmesview
Registremenages_view, beneficiaires_view
Plaintesview, categorie.sante
Rapportsview, 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.

ModulePermissions
Ménagesview, create, edit, export, validate
Bénéficiairesview, create, edit, export
Paiementsview, export
Programmesview
Documentsview, create, export
Rapportsview, export
Climatview, export

ROLE_FIELD_SUPERVISOR — Superviseur de Terrain

Supervision des activités terrain, validation des ménages et gestion des plaintes.

ModulePermissions
Registremenages_view, menages_edit, menages_validate, beneficiaires_view, doublons_view, doublons_check
Plaintesview, create
Donnéescarte
Rapportsview

ROLE_DB_SPECIALIST — Spécialiste Base de Données

Gestion des utilisateurs, maintenance système, gestion des doublons et intégration KoboToolbox.

ModulePermissions
Adminusers, roles, settings, audit
Registremenages_view, menages_edit, menages_validate, menages_delete, beneficiaires_view, beneficiaires_edit, doublons_*, import, import_template
KoboToolboxview, sync, configure
Rapportsview, generate

ROLE_GESTIONNAIRE_PAIEMENT — Spécialiste Transfert Monétaire

Gestion des paiements, cycles de transfert et réconciliation.

ModulePermissions
Ménagesview
Bénéficiairesview
Paiementsview, create, export
Programmesview, create, edit, bailleurs
Registremenages_view, menages_edit, menages_delete, menages_doublons, beneficiaires_view, beneficiaires_edit, eligibilite, documents
Transfertscycles_view, cycles_create, paiements_view, paiements_execute, recurrence, reconciliation
Donnéeskobo, carte
Rapportsview

ROLE_TM_SPECIALIST — Spécialiste Transferts Monétaires

Supervision du programme de transferts monétaires, approbation des inscriptions et paiements.

ModulePermissions
Programmesview, edit, enroll
Registremenages_view, beneficiaires_view, beneficiaires_edit, eligibilite_view, eligibilite_evaluate
Transfertscycles_view, cycles_create, cycles_edit, cycles_validate, paiements_view, paiements_execute, recurrence, reconciliation, comptes_operateurs_view, comptes_operateurs_edit, cycles_documents
Rapportsview, generate
Plaintesview, create, process, close, categorie.protection_sociale

ROLE_RAF — Responsable Admin & Financier

Gestion administrative et financière, validation des paiements et exports.

ModulePermissions
Ménagesview, export
Bénéficiairesview, export
Paiementsview, create, validate, export
Programmesview
Rapportsview, create, export

ROLE_DATA_ENTRY — Opérateur de Saisie

Saisie des données ménages et bénéficiaires.

ModulePermissions
Ménagesview, create, edit
Bénéficiairesview, create, edit
Documentsview, create

ROLE_MA — Mesure Accompagnement

Accompagnement terrain des ménages.

ModulePermissions
Ménagesview, create, edit
Bénéficiairesview, create, edit
Documentsview, create
Climatview

ROLE_SS_SPECIALIST — Spécialiste Sauvegardes Sociales

Gestion et résolution des plaintes, y compris les plaintes sensibles (EAS/HS/VBG).

ModulePermissions
Plaintesview, create, process, close, sensibles_view, sensibles_manage
Registremenages_view, beneficiaires_view
KoboToolboxview, configure, sync
Rapportsview, generate

ROLE_SSE — Spécialiste Sauvegardes Environnementales

Gestion des plaintes environnementales et accès aux plaintes sensibles.

ModulePermissions
Plaintesview, create, process, close, sensibles_view, sensibles_manage
Registremenages_view, beneficiaires_view
Donnéescarte
KoboToolboxview
Rapportsview, generate

ROLE_SE — Suivi-Évaluation

Suivi et évaluation des programmes. Accès en lecture et export.

ModulePermissions
Ménagesview, export
Bénéficiairesview, export
Paiementsview, export
Programmesview
Rapportsview, create, export
Climatview, export

ROLE_ONG_FOCAL — Point Focal ONG

Point focal des partenaires ONG.

ModulePermissions
Registremenages_view, menages_edit, beneficiaires_view
Plaintesview, create
Donnéescarte
Rapportsview

ROLE_POINT_FOCAL_ONG — Point Focal ONG (accès limité)

Accès limité aux zones de son ONG.

ModulePermissions
Programmesview
Registremenages_view, beneficiaires_view
Plaintesview, create
Rapportsview

ROLE_VIEWER — Lecteur

Consultation uniquement, aucune modification possible.

ModulePermissions
Ménagesview
Bénéficiairesview
Paiementsview
Programmesview
Documentsview
Rapportsview
Climatview

ROLE_USER — Utilisateur

Rôle de base attribué à tout utilisateur authentifié.

ModulePermissions
Ménagesview
Bénéficiairesview

Liste des modules de permissions

ModuleDescription
menagesGestion des ménages
beneficiairesGestion des bénéficiaires
paiementsGestion des paiements
programmesGestion des programmes
documentsDocuments d'identité
rapportsRapports et exports
climatDonnées climatiques
plaintesMécanisme de gestion des réclamations
administrationUtilisateurs, rôles, paramètres
registreRegistre social (ménages, bénéficiaires, doublons)
transfertsCycles et paiements (vue détaillée)
koboIntégration KoboToolbox
donneesCarte SIG et données externes
suivi_evaluationSuivi 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

  1. Accédez à Paramètres > Rôles
  2. Cliquez sur Nouveau rôle
  3. 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
  4. 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

Prochaines étapes