Skip to main content

Roles and Permissions

This guide explains the PCH-SIG roles and permissions system.

Permissions Architecture

PCH-SIG uses a granular permissions system based on the format:

module.action

Examples:

  • menages.view: View households
  • menages.edit: Edit households
  • transferts.cycles_create: Create payment cycles

Roles and their permissions are managed in the database via the Role entity.


Predefined Roles

ROLE_ADMIN — Administrator

Full access to the system, including user administration, roles, settings, and audit.

ModulePermissions
AllAll permissions

ROLE_COORDINATEUR — National Coordinator

Coordination of national activities. Extended access to household management, beneficiaries, payments, programs, reports, and climate data.

ModulePermissions
Householdsview, create, edit, export, import, validate
Beneficiariesview, create, edit, export, import
Paymentsview, create, validate, export
Programsview, create, edit
Documentsview, create, validate, export
Reportsview, create, export
Climateview, create, edit, export

ROLE_COORDINATEUR_SANTE — Health Coordinator

Coordination of health-related activities. Access to programs, health-category complaints, and reports.

ModulePermissions
Programsview
Registrymenages_view, beneficiaires_view
Complaintsview, categorie.sante
Reportsview, generate

ROLE_SUPERVISEUR — Regional Supervisor

Supervision of regional activities. Read/write access to households and beneficiaries, exports, and reports.

ModulePermissions
Householdsview, create, edit, export, validate
Beneficiariesview, create, edit, export
Paymentsview, export
Programsview
Documentsview, create, export
Reportsview, export
Climateview, export

ROLE_FIELD_SUPERVISOR — Field Supervisor

Field activity supervision, household validation, and complaint management.

ModulePermissions
Registrymenages_view, menages_edit, menages_validate, beneficiaires_view, doublons_view, doublons_check
Complaintsview, create
Datacarte
Reportsview

ROLE_DB_SPECIALIST — Database Specialist

User management, system maintenance, duplicate management, and KoboToolbox integration.

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

ROLE_GESTIONNAIRE_PAIEMENT — Cash Transfer Specialist

Payment management, transfer cycles, and reconciliation.

ModulePermissions
Householdsview
Beneficiariesview
Paymentsview, create, export
Programsview, create, edit, bailleurs
Registrymenages_view, menages_edit, menages_delete, menages_doublons, beneficiaires_view, beneficiaires_edit, eligibilite, documents
Transferscycles_view, cycles_create, paiements_view, paiements_execute, recurrence, reconciliation
Datakobo, carte
Reportsview

ROLE_TM_SPECIALIST — Cash Transfer Specialist

Cash transfer program oversight, enrollment approval, and payments.

ModulePermissions
Programsview, edit, enroll
Registrymenages_view, beneficiaires_view, beneficiaires_edit, eligibilite_view, eligibilite_evaluate
Transferscycles_view, cycles_create, cycles_edit, cycles_validate, paiements_view, paiements_execute, recurrence, reconciliation, comptes_operateurs_view, comptes_operateurs_edit, cycles_documents
Reportsview, generate
Complaintsview, create, process, close, categorie.protection_sociale

ROLE_RAF — Administrative & Financial Manager

Administrative and financial management, payment validation, and exports.

ModulePermissions
Householdsview, export
Beneficiariesview, export
Paymentsview, create, validate, export
Programsview
Reportsview, create, export

ROLE_DATA_ENTRY — Data Entry Operator

Household and beneficiary data entry.

ModulePermissions
Householdsview, create, edit
Beneficiariesview, create, edit
Documentsview, create

ROLE_MA — Support Measures

Field support for households.

ModulePermissions
Householdsview, create, edit
Beneficiariesview, create, edit
Documentsview, create
Climateview

ROLE_SS_SPECIALIST — Social Safeguards Specialist

Complaint management and resolution, including sensitive complaints (SEA/SH/GBV).

ModulePermissions
Complaintsview, create, process, close, sensibles_view, sensibles_manage
Registrymenages_view, beneficiaires_view
KoboToolboxview, configure, sync
Reportsview, generate

ROLE_SSE — Environmental Safeguards Specialist

Environmental complaint management and access to sensitive complaints.

ModulePermissions
Complaintsview, create, process, close, sensibles_view, sensibles_manage
Registrymenages_view, beneficiaires_view
Datacarte
KoboToolboxview
Reportsview, generate

ROLE_SE — Monitoring & Evaluation

Program monitoring and evaluation. Read and export access.

ModulePermissions
Householdsview, export
Beneficiariesview, export
Paymentsview, export
Programsview
Reportsview, create, export
Climateview, export

ROLE_ONG_FOCAL — NGO Focal Point

Focal point for NGO partners.

ModulePermissions
Registrymenages_view, menages_edit, beneficiaires_view
Complaintsview, create
Datacarte
Reportsview

ROLE_POINT_FOCAL_ONG — NGO Focal Point (limited access)

Access limited to the areas of their NGO.

ModulePermissions
Programsview
Registrymenages_view, beneficiaires_view
Complaintsview, create
Reportsview

ROLE_VIEWER — Viewer

Read-only access, no modifications allowed.

ModulePermissions
Householdsview
Beneficiariesview
Paymentsview
Programsview
Documentsview
Reportsview
Climateview

ROLE_USER — User

Base role assigned to every authenticated user.

ModulePermissions
Householdsview
Beneficiariesview

Permission Modules List

ModuleDescription
menagesHousehold management
beneficiairesBeneficiary management
paiementsPayment management
programmesProgram management
documentsIdentity documents
rapportsReports and exports
climatClimate data
plaintesGrievance redress mechanism
administrationUsers, roles, settings
registreSocial registry (households, beneficiaries, duplicates)
transfertsCycles and payments (detailed view)
koboKoboToolbox integration
donneesGIS map and external data
suivi_evaluationMonitoring and evaluation

Permissions Verification

Backend Side (Symfony Voter)

// In a controller
$this->denyAccessUnlessGranted('menages.edit', $menage);

// In a service
if ($this->security->isGranted('transferts.cycles_validate')) {
// ...
}

Frontend Side (React)

import { usePermissions } from '@/hooks/usePermissions';

function MenageActions({ menage }) {
const { hasPermission } = usePermissions();

return (
<div>
{hasPermission('menages.edit') && (
<Button onClick={() => handleEdit(menage)}>
Edit
</Button>
)}
</div>
);
}

Creating a Custom Role

Via the Interface

  1. Go to Settings > Roles
  2. Click New Role
  3. Define:
    • Code: Technical identifier (e.g., ROLE_SUPERVISEUR)
    • Name: Displayed label (e.g., Regional Supervisor)
    • Description: Role description
    • Permissions: Check the desired permissions
  4. Save

Best Practices

Principle of Least Privilege

  • Assign only the necessary permissions
  • Start with a restrictive role and add permissions as needed
  • Avoid granting all permissions except for administrators

Role Organization

  • Create clear business roles
  • Document each role's responsibilities
  • Regularly review role assignments

Security

  • Limit the number of administrators
  • Audit permission changes via the audit log
  • Test restrictions on both frontend AND backend
  • Sensitive complaints (SEA/SH/GBV) require the plaintes.sensibles_view permission

Next Steps