Conceitos

RBAC — Papéis e permissões

Sistema de controle de acesso baseado em roles, com 9 papéis padrão e 2 escopos (global / projeto)

Modelo de permissões

Permissões seguem o pattern recurso:ação:

  • compras:read, compras:manage
  • compras_requisicao:read|write|delete
  • compras_cotacao:read|write|manage
  • financeiro:read|write|manage
  • etc.

Hierarquia de ações

managewriteread

Quem tem manage tem write e read automaticamente — não precisa atribuir os 3.

Escopos

EscopoSignificado
globalVale para a organização inteira (ex: ver lista de fornecedores)
projectVale apenas em projetos onde o usuário é membro (ex: ver requisições de uma obra)

Papéis (roles) padrão

SlugHierarquiaAcesso a projetosPermissões típicas
proprietario0TodosTudo
diretor1TodosAprovar grandes valores, configurar alçadas, decisões finais
gerente-projetos2Apenas membrosAprovar RC/medições, cotar, contratar
engenheiro3Apenas membrosRequisitar, receber, medir
financeiro4Apenas membrosLançar CAP, conciliar, retenções
comercial5Apenas membrosVendas, reservas, comissões
juridico5Apenas membrosContratos, aditivos > R$ 100k
administrativo6Apenas membrosCadastros, leitura geral
visualizador7Apenas membrosApenas leitura

Regra: roles com hierarchy_level ≤ 1 (proprietário e diretor) têm acesso automático a todos os projetos da organização. Os demais precisam ser explicitamente adicionados em project_members.

Onde configurar

Settings → Acesso → Papéis e Permissões — você pode:

  • Editar permissões de cada role padrão
  • Criar roles customizados (ex: "Comprador Sênior" com permissões específicas)

Settings → Acesso → Usuários — adicionar usuários à organização e atribuir roles globais ou de projeto.

Verificações no código

Frontend (React):

const { hasGlobal, hasProject } = usePermissions();
if (hasGlobal("compras:read")) { /* ... */ }

Backend (API routes):

ctx.requireGlobalPermission("compras_cotacao:write");
// ou
ctx.requireProjectPermission(projectId, "compras_recebimento:read");

Lista completa de permissões

A lista completa fica em Settings → Acesso → Papéis e Permissões. Cada módulo lista suas permissões na própria documentação.

Por exemplo: Permissões do módulo Compras →

On this page