Árvore de permissões tri-state: o chamado que me ensinou a olhar
O que cada estado da árvore quer dizer, por que o quadradinho pela metade é o mais útil dos três e como não liberar tela de configuração sem perceber.

O chamado chegou assim: o menu está marcado no perfil e o usuário jura que não vê a tela. Passei uma tarde inteira nisso. Conferi o perfil, conferi a empresa, conferi o usuário, entrei com a conta dele. Tudo certo, e nada aparecia. O que faltava era olhar o escopo daquele item, porque era uma rota compartilhada entre módulos e eu tinha concedido a ocorrência do contexto errado. A árvore de permissões tri-state estava me contando isso o tempo todo. Eu é que não sabia ler.
A árvore organiza o acesso em três níveis, sistema, grupo e menu, e cada nó pode estar marcado, desmarcado ou parcial. O terceiro estado é o mais útil dos três, porque descreve a situação real da maior parte das equipes: o grupo está liberado só em pedaço, e você precisa enxergar isso sem abrir item por item.
Antes de abrir a tela, tenha o mapa de cargos em mãos. Configurar a árvore sem esse mapa produz uma sequência de tentativas, não um desenho. Se você ainda não fez essa parte, comece por como estruturar os perfis de acesso e volte para cá.
Os três níveis, e onde a mão pesa
| Nível | O que representa | Quando marcar inteiro |
|---|---|---|
| Sistema | O módulo da plataforma ao qual o perfil se aplica | Só em perfil de administração daquele sistema |
| Grupo | O agrupamento de menus dentro do sistema | Quando a função usa o grupo todo, telas de configuração inclusas |
| Menu | A tela navegável em si | Sempre que a concessão for pontual, que é quase sempre |
A regra que eu carrego é curta: quanto mais alto o nível marcado, maior a chance de conceder algo que ninguém pediu. Marcar sistema inteiro é confortável na hora de configurar. É bem desconfortável quando alguém pergunta por que aquele usuário enxerga uma tela de parâmetro.
Lendo cada estado da árvore de permissões tri-state
- Marcado: todos os filhos daquele nó estão concedidos, inclusive os que forem adicionados naquele agrupamento.
- Desmarcado: nenhum filho está concedido e o nó não aparece para o usuário.
- Parcial: parte dos filhos está concedida, sinal de que o detalhamento foi feito no nível de baixo.
Rotas compartilhadas: a armadilha silenciosa
Alguns menus servem a mais de um módulo. Uma tela de cadastro usada por dois sistemas é o caso clássico. O catálogo trata isso com escopo explícito, indicando a qual contexto aquela concessão pertence. Sem esse escopo, liberar a tela em um sistema poderia significar liberar em todos, que é justamente o efeito colateral que a árvore existe para impedir.
Quando encontrar um item com escopo declarado, confira se o sistema indicado é o mesmo do perfil que você está editando. Essa divergência é a causa número um daquele chamado que me custou uma tarde. Como o desenho vira registro efetivo está descrito em catálogo de permissões e materialização, e leitura de meia hora ali economiza tarde inteira aqui.
Um roteiro de configuração que não deixa rastro solto
- Confirme empresa e sistemaO perfil pertence aos dois. Em ambiente com várias unidades, esse é o clique que mais gera retrabalho quando sai errado.
- Leia a árvore fechada primeiroSó os nomes dos grupos. Isso dá a dimensão do sistema e evita marcar coisa fora de contexto por impulso.
- Expanda só o que a função usaMarque no nível de menu e deixe o estado parcial acontecer sozinho nos grupos. Ele é informação, não sujeira.
- Confira os itens com escopoNome igual em contextos diferentes engana. Leia o escopo antes de marcar, sempre.
- Salve e deixe materializarO salvamento converte o desenho para a estrutura compatível com o modelo legado, que é o que o runtime valida de fato.
- Teste com usuário realRotina inteira, incluindo o que só acontece no fim do mês. Abrir o menu não prova que a ação seguinte está liberada.
O que some da tela e o que continua passando
Sistemas e menus sem permissão são ocultados da navegação. O usuário não vê a opção, e isso reduz tentativa e erro. O Acesso Total mantém bypass administrativo, e é exatamente por isso que ele precisa ficar com quem administra a conta e mais ninguém. A relação entre ocultar menu e montar a navegação está em menus por sistema e navegação do painel.
Documentar faz parte de configurar
A árvore mostra o estado, nunca a intenção. Meio ano depois ninguém lembra por que um menu foi para um perfil e não para outro, e a decisão é refeita do zero, quase sempre liberando mais. Uma anotação de uma linha por perfil resolve isso com esforço quase nulo. Em ambiente com várias empresas o cuidado vale dobrado, porque o mesmo nome de perfil pode ter desenhos diferentes em cada unidade e a diferença raramente foi acidente.
O que anotar sobre cada perfil
- A função que ele representa, em uma frase.
- A empresa e o sistema a que se aplica.
- Os grupos deixados de fora de propósito, com o motivo.
- As rotas compartilhadas conferidas e o escopo escolhido.
- A data da última revisão e quem fez.
Com a árvore dominada, o ganho seguinte vem da manutenção. Leia os erros comuns na configuração de permissões e converse com quem cuida de automação e IA antes de liberar telas que disparam ação em lote, porque ali um clique a mais tem consequência maior do que uma tela de consulta.