Skip to content

feat(rbac): copiar perfil, prévia do menu e aviso de liberação faltando - #173

Merged
malacration merged 1 commit into
malacration:mainfrom
franciscoMarcello:feat/regras-acesso-ferramentas
Oct 29, 2026
Merged

malacration merged 1 commit into
malacration:mainfrom
franciscoMarcello:feat/regras-acesso-ferramentas

Conversation

@franciscoMarcello

Copy link
Copy Markdown
Contributor

Depende do PR irmão no sap-service (POST /acesso/regras/simular-lote e regras /tela/...).

O que muda na tela Regras de Acesso

  • Copiar perfil: cria um perfil novo (<perfil>_copia) com as regras salvas do selecionado.
  • Conferir telas (aba Perfis): quais telas o perfil em edição abre sozinho, considerando o rascunho, e o que falta liberar em cada uma.
  • Ver o menu destes perfis (aba Testar acesso): o menu que um usuário com os perfis marcados veria, com o mesmo aviso e o rodapé da versão simulada (e se ela já está valendo).

previa-menu.ts monta a prévia com a mesma regra do MenuSidebarComponent (role-not, api: com menuPorPermissao, role: sem ela, grupo some sem filho) a partir de uma chamada ao simular-lote. Respostas fora de ordem são descartadas (sequências separadas para "Testar", "Ver o menu" e "Conferir telas").

Marcação nova usa: nas rotas

"usa:get:/branch" = chamada de leitura que a tela faz além da principal (api:). Não decide o menu (o PermissoesApiService continua lendo só api:); serve para o aviso "abre, mas dá 403 em …". Preenchida nas 19 telas que não são só de admin, a partir das chamadas reais de cada componente. Ficaram de fora de propósito: /mapa-relacoes/*/* (botão aparece para todos, rota é de admin), /reports/** (autorizado pelo sap-reports) e as buscas da tela Relatórios (dependem do parâmetro do relatório).

Permissão só de tela

PIX, Parceiro Negócio, Localidades e Análise Pedidos passam a usar api:get:/tela/<rota>; a URL antiga virou usa:. Assim liberar POST /pix/gerar-chave (PIX do pedido), /locais/search, /painel/pedidos ou /business-partners/* não traz mais essas telas junto. /tela/... não aparece no aviso de 403 (nenhuma chamada vai para ela).

Deploy

  • Com menuPorPermissao desligada (hoje) o menu não muda.
  • Antes de ligar a flag, as regras /tela/... precisam estar no rules.yml do swarm e no cadastro, senão as quatro telas somem para quem as via.

Testes

  • previa-menu.spec.ts (flag ligada/desligada, aviso de dependência, /tela/ fora do aviso, consultas sem repetir); 69 testes de regras-acesso, core e layout verdes; build de produção sem erros.
  • Revisado com o Codex (2 rodadas, sem achados restantes). Rodado localmente contra o backend no HOMOLOG2.

🤖 Generated with Claude Code

…do (marcação usa:)

- Regras de Acesso: "Copiar perfil" (novo perfil com as regras salvas do selecionado),
  "Conferir telas" (telas que o perfil em edição abre sozinho, com rascunho) e
  "Ver o menu destes perfis" na aba Testar acesso.
- previa-menu.ts: monta o menu de um conjunto de perfis com a mesma regra do menu
  lateral (role-not, api: com menuPorPermissao, role: sem ela), a partir de uma
  chamada a /acesso/regras/simular-lote; mostra a versão simulada e se já vale.
- Marcação nova "usa:metodo:/caminho" nas rotas: chamadas de leitura que a tela faz
  além da principal. Não decide o menu; alimenta o aviso "abre, mas dá 403 em".
  Preenchida nas 19 telas que não são só de admin.
- PIX, Parceiro Negócio, Localidades e Análise Pedidos passam a usar
  api:get:/tela/<rota> (permissão só de tela); a URL antiga vira usa:. Liberar o
  POST /pix/gerar-chave (PIX do pedido), /locais/search, /painel/pedidos ou
  /business-partners/* não traz mais essas telas junto.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@malacration
malacration merged commit f49268d into malacration:main Oct 29, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants