Skip to content

Papéis e Permissões ​

O controle de acesso do Neemias é baseado em papéis (RBAC). A definição das permissões está em packages/permissions/index.ts — a fonte única da verdade compartilhada entre frontend e backend.

Papéis Built-in ​

PapelPermissõesDescrição
ADMIN17Acesso total: presença, relatórios, alunos, usuários, turmas, núcleos, configurações, importação/exportação
CHAMADOR2Marca presença e busca alunos
RELATORIOS2Visualiza relatórios e busca alunos
CADASTRO6Cadastra alunos, gerencia turmas, núcleos e aulas

Nota: O papel ADMIN sempre possui todas as permissões do sistema, independentemente de alterações futuras na lista.

Lista Completa de Permissões ​

#PermissãoDescriçãoADMINCHAMADORRELATORIOSCADASTRO
1attendanceMarcar presença/ausência de alunos✅✅
2reportsAcessar relatórios de frequência✅✅
3students.addCriar novos alunos✅✅
4students.editEditar dados de alunos✅
5students.deleteExcluir alunos (soft-delete com justificativa)✅
6students.searchBuscar e listar alunos✅✅✅✅
7users.viewVisualizar lista de usuários✅
8users.createCriar novos usuários✅
9users.editEditar dados de usuários✅
10users.deactivateDesativar usuários (soft-delete)✅
11users.resetPasswordRedefinir senha de usuários✅
12settingsAcessar configurações do sistema✅
13import-exportImportar e exportar dados✅
14sessions.addCriar aulas/ocorrências de turma✅✅
15sessions.editEditar aulas/ocorrências de turma✅✅
16nuclei.manageCriar, editar e excluir núcleos✅✅
17classes.manageCriar, editar e excluir turmas✅✅

Papéis Dinâmicos (v0.26.0+) ​

A partir da versão 0.26.0, o sistema oferece suporte a papéis dinâmicos: o administrador pode criar papéis customizados com conjuntos arbitrários de permissões, além dos quatro papéis built-in. A arquitetura de permissões foi projetada para que novos papéis sejam adicionados com uma única entrada no mapa PERMISSIONS, e o tipo UserRole é derivado automaticamente — sem duplicação de definições.

Proteção em Rota ​

No frontend, o componente PermissionGuard envolve cada rota e verifica se o usuário logado possui a permissão necessária. No backend, o middleware de autenticação (workers/src/middleware/auth.ts) aplica a verificação de papel (role guard) em cada rota da API.


Fontes: PRD §7 · packages/permissions/index.ts

Distribuído sob licença MIT.