Pular para o conteúdo principal

Funções e Permissões

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:

module.action

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óduloDomínio
programmesProgramas, inscrição, financiadores
registreAgregados, beneficiários, duplicados, elegibilidade, importações
transfertsTransferências (ciclos de pagamento), pagamentos, reconciliação, contas dos operadores
servicesVBGServiços de atendimento VBG
codeConduiteAssinaturas do código de conduta (Kobo)
plaintesMecanismo de gestão das reclamações, reclamações sensíveis, acesso por categoria
kbBase de conhecimento
donneesMapa SIG, KoboToolbox, Survey Solutions
regions, secteurs, localites, ecoles, centres_sante, points_eau, policesReferencial geográfico e infraestruturas
kobo, survey_solutionsConfiguração e sincronização das fontes de recolha
reunionsReuniões e folhas de presença
monitoringSupervisão técnica
suivi_evaluationPTBA, indicadores, riscos, missões
collecte, agences, enqueteurs, campagnes, affectationsRecolha no terreno
rapportsRelatórios e exportações
cms, analyticsSite público e estatísticas de visitas
adminUtilizadores, funções, definições, auditoria

Verificação das permissões​

Lado Backend (Symfony Voter)​

// Num controlador
$this->denyAccessUnlessGranted('registre.menages_edit', $menage);

// Num serviço
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​

  1. Aceda a Definições > Funções
  2. Clique em Nova função
  3. 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
  4. 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ódigoDesignação mostrada
programmes.viewConsulter les programmes
programmes.createCréer des programmes
programmes.editModifier les programmes
programmes.deleteSupprimer des programmes
programmes.enrollEnrôler des bénéficiaires
programmes.bailleurs_viewConsulter les bailleurs
programmes.bailleurs_createCréer des bailleurs
programmes.bailleurs_editModifier les bailleurs
programmes.bailleurs_deleteSupprimer des bailleurs

Registre Social​

CódigoDesignação mostrada
registre.menages_viewConsulter les ménages
registre.menages_editModifier les ménages
registre.menages_membresAjouter/modifier les membres du ménage
registre.menages_submitSoumettre les ménages pour validation
registre.menages_validateValider les ménages
registre.menages_rejectRejeter les ménages
registre.menages_deleteSupprimer les ménages
registre.doublons_viewConsulter les doublons
registre.doublons_checkVérifier les doublons
registre.doublons_processTraiter les doublons (ignorer/fusionner)
registre.doublons_analyzeLancer l'analyse des doublons
registre.beneficiaires_viewConsulter les bénéficiaires
registre.beneficiaires_editModifier les bénéficiaires
registre.documentsGérer les documents d'identité
registre.eligibilite_viewConsulter les règles d'éligibilité
registre.eligibilite_createCréer des règles d'éligibilité
registre.eligibilite_editModifier des règles d'éligibilité
registre.eligibilite_deleteSupprimer des règles d'éligibilité
registre.eligibilite_evaluateÉvaluer l'éligibilité
registre.importImporter des ménages
registre.import_templateTélécharger les modèles d'import

Transferts Monétaires​

CódigoDesignação mostrada
transferts.cycles_viewConsulter les cycles
transferts.cycles_createCréer des cycles
transferts.cycles_editModifier les cycles
transferts.cycles_validateValider les cycles
transferts.paiements_viewConsulter les paiements
transferts.paiements_executeExécuter les paiements
transferts.recurrenceGérer la récurrence
transferts.reconciliationRéconcilier les paiements
transferts.comptes_operateurs_viewConsulter les comptes opérateurs
transferts.comptes_operateurs_editGérer les comptes opérateurs
transferts.comptes_operateurs_depotEnregistrer des dépôts
transferts.cycles_documentsGérer les documents des cycles

Services VBG (Violences Basées sur le Genre)​

CódigoDesignação mostrada
servicesVBG.viewConsulter les services et agents VBG
servicesVBG.editModifier les services et agents VBG
servicesVBG.deleteSupprimer des services ou agents VBG
servicesVBG.analyzeAccéder à l'analyse VBG (KoboToolbox)
servicesVBG.importImporter des services/agents depuis KoboToolbox

Code de conduite (signatures collectées via Kobo)​

CódigoDesignação mostrada
codeConduite.viewConsulter les signatures du code de conduite
codeConduite.exportExporter les signatures du code de conduite (CSV, Excel, brut Kobo, pièces jointes)
codeConduite.syncLancer la synchronisation Kobo du code de conduite

Plaintes​

CódigoDesignação mostrada
plaintes.viewConsulter les plaintes
plaintes.createCréer des plaintes
plaintes.processTraiter les plaintes
plaintes.closeClôturer les plaintes
plaintes.assignationsVoir mes assignations
plaintes.sensibles_viewConsulter les plaintes sensibles EAS/HS
plaintes.sensibles_manageGérer les détails des plaintes sensibles EAS/HS

Plaintes par catégorie (accès filtré)​

CódigoDesignação mostrada
plaintes.categorie.allAccès à toutes les catégories de plaintes
plaintes.categorie.protection_socialeAccès aux plaintes Protection Sociale
plaintes.categorie.santeAccès aux plaintes Santé
plaintes.categorie.educationAccès aux plaintes Éducation
plaintes.categorie.autreAccès aux plaintes Autre

Gestion des catégories et types de plaintes (paramétrage)​

CódigoDesignação mostrada
plaintes.types_manageGérer les types de réclamations
plaintes.categories_manageGérer les catégories de réclamations

Base de connaissances​

CódigoDesignação mostrada
kb.viewConsulter la base de connaissances
kb.createCréer des articles
kb.editModifier des articles
kb.deleteSupprimer des articles

Données​

CódigoDesignação mostrada
donnees.surveyAccès Survey Solutions
donnees.carteAccès à la carte SIG

Référentiel Géographique - Régions​

CódigoDesignação mostrada
regions.viewConsulter les régions
regions.createCréer des régions
regions.editModifier les régions
regions.deleteSupprimer des régions

Référentiel Géographique - Secteurs​

CódigoDesignação mostrada
secteurs.viewConsulter les secteurs
secteurs.createCréer des secteurs
secteurs.editModifier les secteurs
secteurs.deleteSupprimer des secteurs

Référentiel Géographique - Localités​

CódigoDesignação mostrada
localites.viewConsulter les localités
localites.createCréer des localités
localites.editModifier les localités
localites.deleteSupprimer des localités

Référentiel Géographique - Écoles​

CódigoDesignação mostrada
ecoles.viewConsulter les écoles
ecoles.createCréer des écoles
ecoles.editModifier les écoles
ecoles.deleteSupprimer des écoles

Référentiel Géographique - Centres de santé​

CódigoDesignação mostrada
centres_sante.viewConsulter les centres de santé
centres_sante.createCréer des centres de santé
centres_sante.editModifier les centres de santé
centres_sante.deleteSupprimer des centres de santé

Référentiel Géographique - Points d'eau​

CódigoDesignação mostrada
points_eau.viewConsulter les points d'eau
points_eau.createCréer des points d'eau
points_eau.editModifier les points d'eau
points_eau.deleteSupprimer des points d'eau

Référentiel Géographique - Polices judiciaires​

CódigoDesignação mostrada
polices.viewConsulter les polices judiciaires
polices.createCréer des polices judiciaires
polices.editModifier les polices judiciaires
polices.deleteSupprimer des polices judiciaires

KoboToolbox​

CódigoDesignação mostrada
kobo.viewConsulter les formulaires Kobo
kobo.syncLancer la synchronisation Kobo
kobo.configureConfigurer les formulaires Kobo

Réunions et Fiches de Présence​

CódigoDesignação mostrada
reunions.viewConsulter les réunions et fiches de présence
reunions.createCréer des réunions
reunions.editModifier les réunions
reunions.deleteSupprimer des réunions
reunions.syncSynchroniser les réunions depuis Kobo
reunions.exportExporter les fiches de présence (PDF/CSV)

Survey Solutions​

CódigoDesignação mostrada
survey_solutions.configConfigurer Survey Solutions
survey_solutions.syncLancer la synchronisation Survey Solutions
survey_solutions.import_menagesImporter les ménages depuis Survey Solutions
survey_solutions.import_plaintesImporter les plaintes depuis Survey Solutions

Monitoring​

CódigoDesignação mostrada
monitoring.qualiteTableau de bord qualité
monitoring.couvertureTableau de bord couverture
monitoring.climatTableau de bord climat

Suivi & Évaluation PTBA​

CódigoDesignação mostrada
suivi_evaluation.viewConsulter le suivi des activités PTBA
suivi_evaluation.editModifier l'avancement des activités PTBA
suivi_evaluation.createCréer des activités PTBA
suivi_evaluation.deleteSupprimer des activités PTBA
suivi_evaluation.manage_structureGérer les composantes et sous-composantes
suivi_evaluation.exportExporter les données PTBA
suivi_evaluation.indicateurs_editGérer le cadre de résultats et saisir les valeurs des indicateurs
suivi_evaluation.indicateurs_validateValider les valeurs des indicateurs
suivi_evaluation.risques_editGérer le registre des risques
suivi_evaluation.missions_editGérer les missions et leurs recommandations

Collecte (ménages collectés)​

CódigoDesignação mostrada
collecte.menages_viewConsulter les ménages collectés
collecte.menages_createCréer des ménages collectés
collecte.menages_editModifier les ménages collectés
collecte.menages_deleteSupprimer des ménages collectés
collecte.validationValider/rejeter les ménages collectés
collecte.integrationIntégrer les ménages au registre
collecte.doublonsGérer les doublons de collecte
collecte.importImporter des données de collecte

Agences de Recensement​

CódigoDesignação mostrada
agences.viewConsulter les agences
agences.createCréer des agences
agences.editModifier les agences
agences.deleteSupprimer des agences
agences.assign_enqueteursAffecter des enquêteurs aux agences

Enquêteurs​

CódigoDesignação mostrada
enqueteurs.viewConsulter les enquêteurs
enqueteurs.createCréer des enquêteurs
enqueteurs.editModifier les enquêteurs
enqueteurs.deleteSupprimer des enquêteurs
enqueteurs.affectationGérer les affectations des enquêteurs
enqueteurs.syncSynchroniser les enquêteurs depuis Kobo

Campagnes de Collecte​

CódigoDesignação mostrada
campagnes.viewConsulter les campagnes
campagnes.createCréer des campagnes
campagnes.editModifier les campagnes
campagnes.deleteSupprimer des campagnes
campagnes.statsVoir les statistiques des campagnes
campagnes.manageGérer le cycle de vie des campagnes

Affectations Campagne (équipes de collecte par zone)​

CódigoDesignação mostrada
affectations.viewConsulter les affectations de campagne
affectations.createCréer des affectations de campagne
affectations.editModifier les affectations de campagne
affectations.deleteSupprimer des affectations de campagne
affectations.manage_equipeGérer les équipes (enquêteurs, contrôleurs, superviseurs)
affectations.statsVoir les statistiques des affectations

Rapports​

CódigoDesignação mostrada
rapports.viewConsulter les rapports
rapports.generateGénérer des rapports
rapports.governmentRapports gouvernementaux
rapports.advancedRapports avancés (analyse, tableaux croisés, etc.)

CMS (Gestion de contenu)​

CódigoDesignação mostrada
cms.viewConsulter les contenus CMS
cms.articles_createCréer des articles/actualités
cms.articles_editModifier les articles/actualités
cms.articles_deleteSupprimer des articles/actualités
cms.pages_createCréer des pages institutionnelles
cms.pages_editModifier les pages institutionnelles
cms.pages_deleteSupprimer des pages institutionnelles
cms.publishPublier/dépublier du contenu
cms.reviewSoumettre le contenu pour revue
cms.manage_categoriesGérer les catégories CMS

Statistiques Visiteurs (Site Public)​

CódigoDesignação mostrada
analytics.visitor_viewConsulter les statistiques de visiteurs
analytics.visitor_exportExporter les données de visiteurs
analytics.goals_viewConsulter les objectifs de conversion
analytics.goals_manageGérer les objectifs de conversion

Administration​

CódigoDesignação mostrada
admin.auditConsulter les logs d'audit
admin.settingsConfigurer les paramètres
admin.usersGérer les utilisateurs
admin.rolesGé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ódigoNome mostrado
ROLE_ADMINAdministrateur Système
ROLE_COORDINATEUR_NATIONALCoordinateur National
ROLE_COORD_EDUCATIONCoordinateur Éducation
ROLE_COORD_SANTECoordinateur Santé
ROLE_TM_SPECIALISTSpécialiste Transferts Monétaires
ROLE_SS_SPECIALISTSSS (spécialiste sauvegardes sociales)
ROLE_SSESSE (spécialiste sauvegardes environnementales)
ROLE_M&ESpécialiste M&E
ROLE_RAFRAF / Comptable
ROLE_TTL_PSTTL PS
ROLE_COORDINATEURCoordinateur de Projet
ROLE_FIELD_SUPERVISORSuperviseur de Terrain
ROLE_DB_SPECIALISTSpécialiste Base de Données
ROLE_DATA_ENTRYOpérateur de Saisie
ROLE_ONG_FOCALPoint Focal ONG
ROLE_USERUtilisateur