Controle de Acesso Baseado em Papéis (RBAC)
Controle de Acesso Baseado em Papéis (RBAC)
Section titled “Controle de Acesso Baseado em Papéis (RBAC)”O FederalStatus implementa um modelo RBAC tripartite baseado no enum TeamMemberPermission do @lib/shared.
Matriz de Papéis e Permissões
Section titled “Matriz de Papéis e Permissões”Papel (Role) |
Nome Funcional | Escopo de Acesso | Permissões |
|---|---|---|---|
ADMIN |
OWNER_TI |
Administrador Geral da Universidade | Controle total: gerencia equipe, configurações institucionais, uploads de logo, serviços e incidentes. |
MANAGER |
OPERATOR_SRE |
Gerente Técnico / Operador NOC | Gestão operacional: cadastra, edita e exclui serviços, registra incidentes e posta atualizações na timeline. |
VIEWER |
AUDITOR_READONLY |
Auditor / Observador | Somente leitura: visualiza telemetria, relatórios SLA e status sem permissão de mutação. |
Implementação Técnica
Section titled “Implementação Técnica”Backend
Section titled “Backend”Middleware ensureRole(['ADMIN', 'MANAGER']) posicionado após ensureAuthenticated:
- Valida o token JWT no cookie.
- Carrega o perfil do usuário no banco PostgreSQL.
- Retorna RFC 7807 (
403 Forbidden) caso o usuário não possua o papel requerido.
Frontend
Section titled “Frontend”Hook usePermission() integrando o estado do useAuthStore e useUser():
isAdmin: Habilita menus e ações restritas a administradores (Gestão de Equipe, Configurações Institucionais).canManage: Habilita botões de criação, edição e exclusão de serviços e incidentes.VIEWER: Acessa o painel administrativo em modo estrito de leitura.