Pular para o conteúdo principal

Funções e Permissões

Este guia explica o sistema de funções e permissões do PCH-SIG.

Arquitetura das permissões

O PCH-SIG utiliza um sistema de permissões granulares baseado no formato:

módulo.ação

Exemplos:

  • menages.view: Ver os agregados familiares
  • menages.edit: Modificar os agregados familiares
  • transferts.cycles_create: Criar ciclos de pagamento

As funções e suas permissões são geridas na base de dados através da entidade Role.


Funções predefinidas

ROLE_ADMIN — Administrador

Acesso completo ao sistema, incluindo a administração de utilizadores, funções, parâmetros e auditoria.

MóduloPermissões
TodosTodas as permissões

ROLE_COORDINATEUR — Coordenador Nacional

Coordenação das atividades nacionais. Acesso alargado à gestão de agregados familiares, beneficiários, pagamentos, programas, relatórios e clima.

MóduloPermissões
Agregados familiaresview, create, edit, export, import, validate
Beneficiáriosview, create, edit, export, import
Pagamentosview, create, validate, export
Programasview, create, edit
Documentosview, create, validate, export
Relatóriosview, create, export
Climaview, create, edit, export

ROLE_COORDINATEUR_SANTE — Coordenador de Saúde

Coordenação das atividades relacionadas com a saúde. Acesso aos programas, reclamações da categoria saúde e relatórios.

MóduloPermissões
Programasview
Registomenages_view, beneficiaires_view
Reclamaçõesview, categorie.sante
Relatóriosview, generate

ROLE_SUPERVISEUR — Supervisor Regional

Supervisão das atividades regionais. Acesso de leitura/escrita aos agregados familiares e beneficiários, exportações e relatórios.

MóduloPermissões
Agregados familiaresview, create, edit, export, validate
Beneficiáriosview, create, edit, export
Pagamentosview, export
Programasview
Documentosview, create, export
Relatóriosview, export
Climaview, export

ROLE_FIELD_SUPERVISOR — Supervisor de Campo

Supervisão das atividades de campo, validação dos agregados familiares e gestão das reclamações.

MóduloPermissões
Registomenages_view, menages_edit, menages_validate, beneficiaires_view, doublons_view, doublons_check
Reclamaçõesview, create
Dadoscarte
Relatóriosview

ROLE_DB_SPECIALIST — Especialista em Base de Dados

Gestão dos utilizadores, manutenção do sistema, gestão de duplicados e integração KoboToolbox.

MóduloPermissões
Adminusers, roles, settings, audit
Registomenages_view, menages_edit, menages_validate, menages_delete, beneficiaires_view, beneficiaires_edit, doublons_*, import, import_template
KoboToolboxview, sync, configure
Relatóriosview, generate

ROLE_GESTIONNAIRE_PAIEMENT — Especialista em Transferências Monetárias

Gestão dos pagamentos, ciclos de transferência e reconciliação.

MóduloPermissões
Agregados familiaresview
Beneficiáriosview
Pagamentosview, create, export
Programasview, create, edit, bailleurs
Registomenages_view, menages_edit, menages_delete, menages_doublons, beneficiaires_view, beneficiaires_edit, eligibilite, documents
Transferênciascycles_view, cycles_create, paiements_view, paiements_execute, recurrence, reconciliation
Dadoskobo, carte
Relatóriosview

ROLE_TM_SPECIALIST — Especialista em Transferências Monetárias

Supervisão do programa de transferências monetárias, aprovação de inscrições e pagamentos.

MóduloPermissões
Programasview, edit, enroll
Registomenages_view, beneficiaires_view, beneficiaires_edit, eligibilite_view, eligibilite_evaluate
Transferênciascycles_view, cycles_create, cycles_edit, cycles_validate, paiements_view, paiements_execute, recurrence, reconciliation, comptes_operateurs_view, comptes_operateurs_edit, cycles_documents
Relatóriosview, generate
Reclamaçõesview, create, process, close, categorie.protection_sociale

ROLE_RAF — Responsável Administrativo e Financeiro

Gestão administrativa e financeira, validação dos pagamentos e exportações.

MóduloPermissões
Agregados familiaresview, export
Beneficiáriosview, export
Pagamentosview, create, validate, export
Programasview
Relatóriosview, create, export

ROLE_DATA_ENTRY — Operador de Introdução de Dados

Introdução de dados de agregados familiares e beneficiários.

MóduloPermissões
Agregados familiaresview, create, edit
Beneficiáriosview, create, edit
Documentosview, create

ROLE_MA — Medida de Acompanhamento

Acompanhamento de campo dos agregados familiares.

MóduloPermissões
Agregados familiaresview, create, edit
Beneficiáriosview, create, edit
Documentosview, create
Climaview

ROLE_SS_SPECIALIST — Especialista em Salvaguardas Sociais

Gestão e resolução de reclamações, incluindo reclamações sensíveis (EAS/HS/VBG).

MóduloPermissões
Reclamaçõesview, create, process, close, sensibles_view, sensibles_manage
Registomenages_view, beneficiaires_view
KoboToolboxview, configure, sync
Relatóriosview, generate

ROLE_SSE — Especialista em Salvaguardas Ambientais

Gestão das reclamações ambientais e acesso às reclamações sensíveis.

MóduloPermissões
Reclamaçõesview, create, process, close, sensibles_view, sensibles_manage
Registomenages_view, beneficiaires_view
Dadoscarte
KoboToolboxview
Relatóriosview, generate

ROLE_SE — Monitorização e Avaliação

Monitorização e avaliação dos programas. Acesso de leitura e exportação.

MóduloPermissões
Agregados familiaresview, export
Beneficiáriosview, export
Pagamentosview, export
Programasview
Relatóriosview, create, export
Climaview, export

ROLE_ONG_FOCAL — Ponto Focal ONG

Ponto focal dos parceiros ONG.

MóduloPermissões
Registomenages_view, menages_edit, beneficiaires_view
Reclamaçõesview, create
Dadoscarte
Relatóriosview

ROLE_POINT_FOCAL_ONG — Ponto Focal ONG (acesso limitado)

Acesso limitado às zonas da sua ONG.

MóduloPermissões
Programasview
Registomenages_view, beneficiaires_view
Reclamaçõesview, create
Relatóriosview

ROLE_VIEWER — Leitor

Apenas consulta, nenhuma modificação possível.

MóduloPermissões
Agregados familiaresview
Beneficiáriosview
Pagamentosview
Programasview
Documentosview
Relatóriosview
Climaview

ROLE_USER — Utilizador

Função de base atribuída a qualquer utilizador autenticado.

MóduloPermissões
Agregados familiaresview
Beneficiáriosview

Lista dos módulos de permissões

MóduloDescrição
menagesGestão dos agregados familiares
beneficiairesGestão dos beneficiários
paiementsGestão dos pagamentos
programmesGestão dos programas
documentsDocumentos de identidade
rapportsRelatórios e exportações
climatDados climáticos
plaintesMecanismo de gestão de reclamações
administrationUtilizadores, funções, parâmetros
registreRegisto social (agregados familiares, beneficiários, duplicados)
transfertsCiclos e pagamentos (vista detalhada)
koboIntegração KoboToolbox
donneesMapa SIG e dados externos
suivi_evaluationMonitorização e avaliação

Verificação das permissões

Lado Backend (Symfony Voter)

// Num controlador
$this->denyAccessUnlessGranted('menages.edit', $menage);

// Num serviço
if ($this->security->isGranted('transferts.cycles_validate')) {
// ...
}

Lado Frontend (React)

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

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

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

Criar uma função personalizada

Através da interface

  1. Aceda a Parâmetros > Funções
  2. Clique em Nova função
  3. Defina:
    • Código: Identificador técnico (ex: ROLE_SUPERVISEUR)
    • Nome: Rótulo apresentado (ex: Supervisor Regional)
    • Descrição: Descrição da função
    • Permissões: Marque as permissões desejadas
  4. Guarde

Boas práticas

Princípio do menor privilégio

  • Atribuir apenas as permissões necessárias
  • Começar por uma função restritiva e adicionar permissões
  • Evitar conceder todas as permissões exceto para administradores

Organização das funções

  • Criar funções de negócio claras
  • Documentar as responsabilidades de cada função
  • Rever regularmente as atribuições

Segurança

  • 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/HS/VBG) requerem a permissão plaintes.sensibles_view

Próximos passos