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 familiaresmenages.edit: Modificar os agregados familiarestransferts.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ódulo | Permissões |
|---|---|
| Todos | Todas 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ódulo | Permissões |
|---|---|
| Agregados familiares | view, create, edit, export, import, validate |
| Beneficiários | view, create, edit, export, import |
| Pagamentos | view, create, validate, export |
| Programas | view, create, edit |
| Documentos | view, create, validate, export |
| Relatórios | view, create, export |
| Clima | view, 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ódulo | Permissões |
|---|---|
| Programas | view |
| Registo | menages_view, beneficiaires_view |
| Reclamações | view, categorie.sante |
| Relatórios | view, 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ódulo | Permissões |
|---|---|
| Agregados familiares | view, create, edit, export, validate |
| Beneficiários | view, create, edit, export |
| Pagamentos | view, export |
| Programas | view |
| Documentos | view, create, export |
| Relatórios | view, export |
| Clima | view, 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ódulo | Permissões |
|---|---|
| Registo | menages_view, menages_edit, menages_validate, beneficiaires_view, doublons_view, doublons_check |
| Reclamações | view, create |
| Dados | carte |
| Relatórios | view |
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ódulo | Permissões |
|---|---|
| Admin | users, roles, settings, audit |
| Registo | menages_view, menages_edit, menages_validate, menages_delete, beneficiaires_view, beneficiaires_edit, doublons_*, import, import_template |
| KoboToolbox | view, sync, configure |
| Relatórios | view, generate |
ROLE_GESTIONNAIRE_PAIEMENT — Especialista em Transferências Monetárias
Gestão dos pagamentos, ciclos de transferência e reconciliação.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view |
| Beneficiários | view |
| Pagamentos | view, create, export |
| Programas | view, create, edit, bailleurs |
| Registo | menages_view, menages_edit, menages_delete, menages_doublons, beneficiaires_view, beneficiaires_edit, eligibilite, documents |
| Transferências | cycles_view, cycles_create, paiements_view, paiements_execute, recurrence, reconciliation |
| Dados | kobo, carte |
| Relatórios | view |
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ódulo | Permissões |
|---|---|
| Programas | view, edit, enroll |
| Registo | menages_view, beneficiaires_view, beneficiaires_edit, eligibilite_view, eligibilite_evaluate |
| Transferências | cycles_view, cycles_create, cycles_edit, cycles_validate, paiements_view, paiements_execute, recurrence, reconciliation, comptes_operateurs_view, comptes_operateurs_edit, cycles_documents |
| Relatórios | view, generate |
| Reclamações | view, 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ódulo | Permissões |
|---|---|
| Agregados familiares | view, export |
| Beneficiários | view, export |
| Pagamentos | view, create, validate, export |
| Programas | view |
| Relatórios | view, create, export |
ROLE_DATA_ENTRY — Operador de Introdução de Dados
Introdução de dados de agregados familiares e beneficiários.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view, create, edit |
| Beneficiários | view, create, edit |
| Documentos | view, create |
ROLE_MA — Medida de Acompanhamento
Acompanhamento de campo dos agregados familiares.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view, create, edit |
| Beneficiários | view, create, edit |
| Documentos | view, create |
| Clima | view |
ROLE_SS_SPECIALIST — Especialista em Salvaguardas Sociais
Gestão e resolução de reclamações, incluindo reclamações sensíveis (EAS/HS/VBG).
| Módulo | Permissões |
|---|---|
| Reclamações | view, create, process, close, sensibles_view, sensibles_manage |
| Registo | menages_view, beneficiaires_view |
| KoboToolbox | view, configure, sync |
| Relatórios | view, generate |
ROLE_SSE — Especialista em Salvaguardas Ambientais
Gestão das reclamações ambientais e acesso às reclamações sensíveis.
| Módulo | Permissões |
|---|---|
| Reclamações | view, create, process, close, sensibles_view, sensibles_manage |
| Registo | menages_view, beneficiaires_view |
| Dados | carte |
| KoboToolbox | view |
| Relatórios | view, generate |
ROLE_SE — Monitorização e Avaliação
Monitorização e avaliação dos programas. Acesso de leitura e exportação.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view, export |
| Beneficiários | view, export |
| Pagamentos | view, export |
| Programas | view |
| Relatórios | view, create, export |
| Clima | view, export |
ROLE_ONG_FOCAL — Ponto Focal ONG
Ponto focal dos parceiros ONG.
| Módulo | Permissões |
|---|---|
| Registo | menages_view, menages_edit, beneficiaires_view |
| Reclamações | view, create |
| Dados | carte |
| Relatórios | view |
ROLE_POINT_FOCAL_ONG — Ponto Focal ONG (acesso limitado)
Acesso limitado às zonas da sua ONG.
| Módulo | Permissões |
|---|---|
| Programas | view |
| Registo | menages_view, beneficiaires_view |
| Reclamações | view, create |
| Relatórios | view |
ROLE_VIEWER — Leitor
Apenas consulta, nenhuma modificação possível.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view |
| Beneficiários | view |
| Pagamentos | view |
| Programas | view |
| Documentos | view |
| Relatórios | view |
| Clima | view |
ROLE_USER — Utilizador
Função de base atribuída a qualquer utilizador autenticado.
| Módulo | Permissões |
|---|---|
| Agregados familiares | view |
| Beneficiários | view |
Lista dos módulos de permissões
| Módulo | Descrição |
|---|---|
menages | Gestão dos agregados familiares |
beneficiaires | Gestão dos beneficiários |
paiements | Gestão dos pagamentos |
programmes | Gestão dos programas |
documents | Documentos de identidade |
rapports | Relatórios e exportações |
climat | Dados climáticos |
plaintes | Mecanismo de gestão de reclamações |
administration | Utilizadores, funções, parâmetros |
registre | Registo social (agregados familiares, beneficiários, duplicados) |
transferts | Ciclos e pagamentos (vista detalhada) |
kobo | Integração KoboToolbox |
donnees | Mapa SIG e dados externos |
suivi_evaluation | Monitorizaçã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
- Aceda a Parâmetros > Funções
- Clique em Nova função
- 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
- Código: Identificador técnico (ex:
- 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