Pular para o conteúdo principal

Usuários e Permissões

A administração de usuários e o sistema de permissões controlam quem pode acessar quais páginas e ações dentro da plataforma HSBR.

Como acessar

Rota: /usuarios — exige permissão administracao.usuarios e privilégio de administrador.

Modelo de permissões

As permissões são organizadas em uma estrutura hierárquica de grupo → ação:

type Permissions = Record<string, boolean | Record<string, boolean>>;

Cada grupo representa um módulo (produto, movimentacao, administracao, etc.) e cada ação representa uma operação dentro do módulo. Quando o valor é diretamente boolean, o módulo inteiro é controlado por uma única flag.

Tipos de usuário

  • Administrador (admin: true) — acesso total a todas as páginas e ações, ignorando o mapa de permissões.
  • Usuário comum — acesso restrito ao que está marcado como true em seu mapa permissoes.
  • Usuário device (gerado por seed db:seeduser) — usado por leitores fixos. Recebe permissões e hierarquia atribuídas no gerenciador.

Mapa de permissões disponíveis

Cada página da aplicação declara a permissão necessária via <ProtectedPage requiredPermission="...">. Abaixo o mapa atual extraído do código.

Página inicial e dashboards

  • inicio/inicio

Etiquetas e Impressão (Tier Impressão)

  • etiquetas/etiquetas
  • impressao/impressao (grade de impressão)
  • produto.cadastro_produto/cadastro-produto
  • produto.gerar_ativos/gerar-ativos

Ativos e Associações

  • ativos/ativos
  • produto.associar_epc/associar-epc
  • produto.associar_beacon/associar-beacon

Inventários

  • inventarios/inventarios

Movimentação

  • movimentacao.movimentar/movimentacao
  • movimentacao.registros/movimentacao/registros
  • movimentacao.movimentacao-temporeal/movimentacoes-temporeal
  • movimentacao.mapa/mapa

Separação de Ativos

  • separacao_ativos.ordem_separacao/ordem-separacao
  • separacao_ativos.relatorios_separacao/relatorios-separacao

Outros módulos

  • pacotes/pacotes (requer feature flag pacotes)
  • niveis_organizacionais/niveis-organizacionais

Administração

  • administracao.usuarios/usuarios (requer admin)
  • administracao.configuracao/configuracao (feature flags)
  • administracao.configuracao_cores/configuracao-cores
  • administracao.logs/logs

Como usar a tela de Usuários

  1. Acesse /usuarios (apenas administradores).
  2. Clique em Criar usuário para abrir o formulário.
  3. Preencha nome, e-mail, senha inicial e — se aplicável — marque Administrador (substitui o mapa de permissões).
  4. No bloco de permissões, marque/desmarque cada ação por grupo.
    • Use o botão Padrão para aplicar o template useDefaultPermissions (consulta /user/default-permissions no backend).
    • Use Limpar tudo para zerar.
  5. Atribua a hierarquia organizacional (locais a que o usuário tem acesso) na aba correspondente.
  6. Clique em Salvar.

Boas práticas

  • Princípio do menor privilégio: comece com o template padrão e adicione permissões só conforme necessário.
  • Admins escassos: marque admin: true apenas para operadores de TI/responsáveis pelo sistema.
  • Usuários device: ao criar um ponto de leitura para dispositivo fixo, atribua a hierarquia de locais ao usuário device e dê permissão somente ao local correspondente.
  • Auditoria: alterações em usuários ficam registradas em Logs do Sistema.