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.