Este guia explica o sistema de funções (perfis) e permissões do Bemba.
Arquitetura das permissões
O Bemba usa um sistema de permissões granulares no formato:
Exemplos:
registre.menages_view: Consultar os agregados
registre.menages_edit: Modificar os agregados
transferts.cycles_create: Criar transferências (ciclos de pagamento)
As permissões existentes estão declaradas em backend/src/Entity/Role.php; a sua atribuição às funções está na base de dados.
Funções
As funções e as suas permissões estão guardadas na base de dados (tabela role) e administram-se em Definições → Funções. Não existe um conjunto de permissões fixado no código: o que uma função pode fazer é o que está marcado no ecrã. A lista dos códigos de função em serviço figura na referência no fim da página.
Regras fixadas pelo código:
ROLE_ADMIN obtém todas as permissões, quaisquer que sejam as caixas marcadas (PermissionVoter).
- Uma função marcada « sistema » não pode ser apagada nem desativada, e o seu código não pode mudar; o nome, a descrição e as permissões continuam modificáveis.
- Alguns códigos são usados pelo tratamento das reclamações:
ROLE_COORDINATEUR_NATIONAL (segundo nível de escalada, resumo diário), ROLE_COORD_EDUCATION, ROLE_COORD_SANTE e o código virtual ROLE_COORD_COMPOSANTE (primeiro nível, coordenador da componente da reclamação). Não os renomear.
Permissões e perímetro: duas coisas distintas
Uma permissão diz o que o utilizador pode fazer; a compartimentação diz sobre que dados. Um utilizador só vê os agregados e programas da sua instituição e dos seus projetos. Uma conta autorizada mas sem instituição nem projeto não vê nada. Ver todo o registo é um privilégio concedido conta a conta (caixa « Acesso ao registo nacional » da ficha do utilizador), nunca uma consequência de uma função.
Ver Utilizadores para os vínculos.
Módulos de permissões
| Módulo | Domínio |
|---|
programmes | Programas, inscrição, financiadores |
registre | Agregados, beneficiários, duplicados, elegibilidade, importações |
transferts | Transferências (ciclos de pagamento), pagamentos, reconciliação, contas dos operadores |
servicesVBG | Serviços de atendimento VBG |
codeConduite | Assinaturas do código de conduta (Kobo) |
plaintes | Mecanismo de gestão das reclamações, reclamações sensíveis, acesso por categoria |
kb | Base de conhecimento |
donnees | Mapa SIG, KoboToolbox, Survey Solutions |
regions, secteurs, localites, ecoles, centres_sante, points_eau, polices | Referencial geográfico e infraestruturas |
kobo, survey_solutions | Configuração e sincronização das fontes de recolha |
reunions | Reuniões e folhas de presença |
monitoring | Supervisão técnica |
suivi_evaluation | PTBA, indicadores, riscos, missões |
collecte, agences, enqueteurs, campagnes, affectations | Recolha no terreno |
rapports | Relatórios e exportações |
cms, analytics | Site público e estatísticas de visitas |
admin | Utilizadores, funções, definições, auditoria |
Verificação das permissões
Lado Backend (Symfony Voter)
$this->denyAccessUnlessGranted('registre.menages_edit', $menage);
if ($this->security->isGranted('transferts.cycles_validate')) {
}
Lado Frontend (React)
import { usePermissions } from '../stores/authStore';
function MenageActions({ menage }) {
const { hasPermission } = usePermissions();
return (
<div>
{hasPermission('registre.menages_edit') && (
<Button onClick={() => handleEdit(menage)}>
Modificar
</Button>
)}
</div>
);
}
Criar uma função personalizada
- Aceda a Definições > Funções
- Clique em Nova função
- Defina:
- Código: identificador técnico, com o prefixo
ROLE_ acrescentado automaticamente (ex.: ROLE_POINT_FOCAL_REGION)
- Nome: designação mostrada (ex.:
Ponto focal regional)
- Descrição: descrição da função
- Permissões: marque as permissões desejadas
- Guarde
Boas práticas
- Atribuir apenas as permissões necessárias; começar por uma função restritiva e acrescentar permissões.
- Limitar o número de administradores.
- Auditar as alterações de permissões através do registo de auditoria.
- Testar as restrições no frontend E no backend.
- As reclamações sensíveis (EAS/AS/VBG) exigem a permissão
plaintes.sensibles_view.
Próximos passos
Referência: códigos técnicos das permissões e dos perfis
O guia do utilizador cita apenas as designações mostradas em Definições → Funções. Esta tabela dá a correspondência com os identificadores técnicos (module.action) usados pela API, pelos voters e pela configuração. Fonte: backend/src/Entity/Role.php (designações em francês, tal como na aplicação).
Programmes
| Código | Designação mostrada |
|---|
programmes.view | Consulter les programmes |
programmes.create | Créer des programmes |
programmes.edit | Modifier les programmes |
programmes.delete | Supprimer des programmes |
programmes.enroll | Enrôler des bénéficiaires |
programmes.bailleurs_view | Consulter les bailleurs |
programmes.bailleurs_create | Créer des bailleurs |
programmes.bailleurs_edit | Modifier les bailleurs |
programmes.bailleurs_delete | Supprimer des bailleurs |
Registre Social
| Código | Designação mostrada |
|---|
registre.menages_view | Consulter les ménages |
registre.menages_edit | Modifier les ménages |
registre.menages_membres | Ajouter/modifier les membres du ménage |
registre.menages_submit | Soumettre les ménages pour validation |
registre.menages_validate | Valider les ménages |
registre.menages_reject | Rejeter les ménages |
registre.menages_delete | Supprimer les ménages |
registre.doublons_view | Consulter les doublons |
registre.doublons_check | Vérifier les doublons |
registre.doublons_process | Traiter les doublons (ignorer/fusionner) |
registre.doublons_analyze | Lancer l'analyse des doublons |
registre.beneficiaires_view | Consulter les bénéficiaires |
registre.beneficiaires_edit | Modifier les bénéficiaires |
registre.documents | Gérer les documents d'identité |
registre.eligibilite_view | Consulter les règles d'éligibilité |
registre.eligibilite_create | Créer des règles d'éligibilité |
registre.eligibilite_edit | Modifier des règles d'éligibilité |
registre.eligibilite_delete | Supprimer des règles d'éligibilité |
registre.eligibilite_evaluate | Évaluer l'éligibilité |
registre.import | Importer des ménages |
registre.import_template | Télécharger les modèles d'import |
Transferts Monétaires
| Código | Designação mostrada |
|---|
transferts.cycles_view | Consulter les cycles |
transferts.cycles_create | Créer des cycles |
transferts.cycles_edit | Modifier les cycles |
transferts.cycles_validate | Valider les cycles |
transferts.paiements_view | Consulter les paiements |
transferts.paiements_execute | Exécuter les paiements |
transferts.recurrence | Gérer la récurrence |
transferts.reconciliation | Réconcilier les paiements |
transferts.comptes_operateurs_view | Consulter les comptes opérateurs |
transferts.comptes_operateurs_edit | Gérer les comptes opérateurs |
transferts.comptes_operateurs_depot | Enregistrer des dépôts |
transferts.cycles_documents | Gérer les documents des cycles |
Services VBG (Violences Basées sur le Genre)
| Código | Designação mostrada |
|---|
servicesVBG.view | Consulter les services et agents VBG |
servicesVBG.edit | Modifier les services et agents VBG |
servicesVBG.delete | Supprimer des services ou agents VBG |
servicesVBG.analyze | Accéder à l'analyse VBG (KoboToolbox) |
servicesVBG.import | Importer des services/agents depuis KoboToolbox |
Code de conduite (signatures collectées via Kobo)
| Código | Designação mostrada |
|---|
codeConduite.view | Consulter les signatures du code de conduite |
codeConduite.export | Exporter les signatures du code de conduite (CSV, Excel, brut Kobo, pièces jointes) |
codeConduite.sync | Lancer la synchronisation Kobo du code de conduite |
Plaintes
| Código | Designação mostrada |
|---|
plaintes.view | Consulter les plaintes |
plaintes.create | Créer des plaintes |
plaintes.process | Traiter les plaintes |
plaintes.close | Clôturer les plaintes |
plaintes.assignations | Voir mes assignations |
plaintes.sensibles_view | Consulter les plaintes sensibles EAS/HS |
plaintes.sensibles_manage | Gérer les détails des plaintes sensibles EAS/HS |
Plaintes par catégorie (accès filtré)
| Código | Designação mostrada |
|---|
plaintes.categorie.all | Accès à toutes les catégories de plaintes |
plaintes.categorie.protection_sociale | Accès aux plaintes Protection Sociale |
plaintes.categorie.sante | Accès aux plaintes Santé |
plaintes.categorie.education | Accès aux plaintes Éducation |
plaintes.categorie.autre | Accès aux plaintes Autre |
Gestion des catégories et types de plaintes (paramétrage)
| Código | Designação mostrada |
|---|
plaintes.types_manage | Gérer les types de réclamations |
plaintes.categories_manage | Gérer les catégories de réclamations |
Base de connaissances
| Código | Designação mostrada |
|---|
kb.view | Consulter la base de connaissances |
kb.create | Créer des articles |
kb.edit | Modifier des articles |
kb.delete | Supprimer des articles |
Données
| Código | Designação mostrada |
|---|
donnees.survey | Accès Survey Solutions |
donnees.carte | Accès à la carte SIG |
Référentiel Géographique - Régions
| Código | Designação mostrada |
|---|
regions.view | Consulter les régions |
regions.create | Créer des régions |
regions.edit | Modifier les régions |
regions.delete | Supprimer des régions |
Référentiel Géographique - Secteurs
| Código | Designação mostrada |
|---|
secteurs.view | Consulter les secteurs |
secteurs.create | Créer des secteurs |
secteurs.edit | Modifier les secteurs |
secteurs.delete | Supprimer des secteurs |
Référentiel Géographique - Localités
| Código | Designação mostrada |
|---|
localites.view | Consulter les localités |
localites.create | Créer des localités |
localites.edit | Modifier les localités |
localites.delete | Supprimer des localités |
Référentiel Géographique - Écoles
| Código | Designação mostrada |
|---|
ecoles.view | Consulter les écoles |
ecoles.create | Créer des écoles |
ecoles.edit | Modifier les écoles |
ecoles.delete | Supprimer des écoles |
Référentiel Géographique - Centres de santé
| Código | Designação mostrada |
|---|
centres_sante.view | Consulter les centres de santé |
centres_sante.create | Créer des centres de santé |
centres_sante.edit | Modifier les centres de santé |
centres_sante.delete | Supprimer des centres de santé |
Référentiel Géographique - Points d'eau
| Código | Designação mostrada |
|---|
points_eau.view | Consulter les points d'eau |
points_eau.create | Créer des points d'eau |
points_eau.edit | Modifier les points d'eau |
points_eau.delete | Supprimer des points d'eau |
Référentiel Géographique - Polices judiciaires
| Código | Designação mostrada |
|---|
polices.view | Consulter les polices judiciaires |
polices.create | Créer des polices judiciaires |
polices.edit | Modifier les polices judiciaires |
polices.delete | Supprimer des polices judiciaires |
| Código | Designação mostrada |
|---|
kobo.view | Consulter les formulaires Kobo |
kobo.sync | Lancer la synchronisation Kobo |
kobo.configure | Configurer les formulaires Kobo |
Réunions et Fiches de Présence
| Código | Designação mostrada |
|---|
reunions.view | Consulter les réunions et fiches de présence |
reunions.create | Créer des réunions |
reunions.edit | Modifier les réunions |
reunions.delete | Supprimer des réunions |
reunions.sync | Synchroniser les réunions depuis Kobo |
reunions.export | Exporter les fiches de présence (PDF/CSV) |
Survey Solutions
| Código | Designação mostrada |
|---|
survey_solutions.config | Configurer Survey Solutions |
survey_solutions.sync | Lancer la synchronisation Survey Solutions |
survey_solutions.import_menages | Importer les ménages depuis Survey Solutions |
survey_solutions.import_plaintes | Importer les plaintes depuis Survey Solutions |
Monitoring
| Código | Designação mostrada |
|---|
monitoring.qualite | Tableau de bord qualité |
monitoring.couverture | Tableau de bord couverture |
monitoring.climat | Tableau de bord climat |
Suivi & Évaluation PTBA
| Código | Designação mostrada |
|---|
suivi_evaluation.view | Consulter le suivi des activités PTBA |
suivi_evaluation.edit | Modifier l'avancement des activités PTBA |
suivi_evaluation.create | Créer des activités PTBA |
suivi_evaluation.delete | Supprimer des activités PTBA |
suivi_evaluation.manage_structure | Gérer les composantes et sous-composantes |
suivi_evaluation.export | Exporter les données PTBA |
suivi_evaluation.indicateurs_edit | Gérer le cadre de résultats et saisir les valeurs des indicateurs |
suivi_evaluation.indicateurs_validate | Valider les valeurs des indicateurs |
suivi_evaluation.risques_edit | Gérer le registre des risques |
suivi_evaluation.missions_edit | Gérer les missions et leurs recommandations |
Collecte (ménages collectés)
| Código | Designação mostrada |
|---|
collecte.menages_view | Consulter les ménages collectés |
collecte.menages_create | Créer des ménages collectés |
collecte.menages_edit | Modifier les ménages collectés |
collecte.menages_delete | Supprimer des ménages collectés |
collecte.validation | Valider/rejeter les ménages collectés |
collecte.integration | Intégrer les ménages au registre |
collecte.doublons | Gérer les doublons de collecte |
collecte.import | Importer des données de collecte |
Agences de Recensement
| Código | Designação mostrada |
|---|
agences.view | Consulter les agences |
agences.create | Créer des agences |
agences.edit | Modifier les agences |
agences.delete | Supprimer des agences |
agences.assign_enqueteurs | Affecter des enquêteurs aux agences |
Enquêteurs
| Código | Designação mostrada |
|---|
enqueteurs.view | Consulter les enquêteurs |
enqueteurs.create | Créer des enquêteurs |
enqueteurs.edit | Modifier les enquêteurs |
enqueteurs.delete | Supprimer des enquêteurs |
enqueteurs.affectation | Gérer les affectations des enquêteurs |
enqueteurs.sync | Synchroniser les enquêteurs depuis Kobo |
Campagnes de Collecte
| Código | Designação mostrada |
|---|
campagnes.view | Consulter les campagnes |
campagnes.create | Créer des campagnes |
campagnes.edit | Modifier les campagnes |
campagnes.delete | Supprimer des campagnes |
campagnes.stats | Voir les statistiques des campagnes |
campagnes.manage | Gérer le cycle de vie des campagnes |
Affectations Campagne (équipes de collecte par zone)
| Código | Designação mostrada |
|---|
affectations.view | Consulter les affectations de campagne |
affectations.create | Créer des affectations de campagne |
affectations.edit | Modifier les affectations de campagne |
affectations.delete | Supprimer des affectations de campagne |
affectations.manage_equipe | Gérer les équipes (enquêteurs, contrôleurs, superviseurs) |
affectations.stats | Voir les statistiques des affectations |
Rapports
| Código | Designação mostrada |
|---|
rapports.view | Consulter les rapports |
rapports.generate | Générer des rapports |
rapports.government | Rapports gouvernementaux |
rapports.advanced | Rapports avancés (analyse, tableaux croisés, etc.) |
CMS (Gestion de contenu)
| Código | Designação mostrada |
|---|
cms.view | Consulter les contenus CMS |
cms.articles_create | Créer des articles/actualités |
cms.articles_edit | Modifier les articles/actualités |
cms.articles_delete | Supprimer des articles/actualités |
cms.pages_create | Créer des pages institutionnelles |
cms.pages_edit | Modifier les pages institutionnelles |
cms.pages_delete | Supprimer des pages institutionnelles |
cms.publish | Publier/dépublier du contenu |
cms.review | Soumettre le contenu pour revue |
cms.manage_categories | Gérer les catégories CMS |
Statistiques Visiteurs (Site Public)
| Código | Designação mostrada |
|---|
analytics.visitor_view | Consulter les statistiques de visiteurs |
analytics.visitor_export | Exporter les données de visiteurs |
analytics.goals_view | Consulter les objectifs de conversion |
analytics.goals_manage | Gérer les objectifs de conversion |
Administration
| Código | Designação mostrada |
|---|
admin.audit | Consulter les logs d'audit |
admin.settings | Configurer les paramètres |
admin.users | Gérer les utilisateurs |
admin.roles | Gérer les rôles |
Perfis
Os perfis são administrados em Definições → Funções; o nome mostrado pode ser alterado, o código não. O código virtual ROLE_COORD_COMPOSANTE, utilizável nos níveis de escalada das reclamações, designa o coordenador da componente da reclamação (Educação, Saúde ou Proteção social).
| Código | Nome mostrado |
|---|
ROLE_ADMIN | Administrateur Système |
ROLE_COORDINATEUR_NATIONAL | Coordinateur National |
ROLE_COORD_EDUCATION | Coordinateur Éducation |
ROLE_COORD_SANTE | Coordinateur Santé |
ROLE_TM_SPECIALIST | Spécialiste Transferts Monétaires |
ROLE_SS_SPECIALIST | SSS (spécialiste sauvegardes sociales) |
ROLE_SSE | SSE (spécialiste sauvegardes environnementales) |
ROLE_M&E | Spécialiste M&E |
ROLE_RAF | RAF / Comptable |
ROLE_TTL_PS | TTL PS |
ROLE_COORDINATEUR | Coordinateur de Projet |
ROLE_FIELD_SUPERVISOR | Superviseur de Terrain |
ROLE_DB_SPECIALIST | Spécialiste Base de Données |
ROLE_DATA_ENTRY | Opérateur de Saisie |
ROLE_ONG_FOCAL | Point Focal ONG |
ROLE_USER | Utilisateur |