Referência da situação atual no código (migrations + menu-tree.ts + menu-permissions.ts) sobre quais módulos cada perfil enxerga por padrão e limitações adicionais que independem do perfil.
Perfis de sistema (
is_sistema = true) não podem ser editados em Administração → Usuários. Perfis customizados criados pelo tenant seguem apenas as permissões marcadas manualmente.
Estas regras aparecem na coluna Obs quando aplicáveis a qualquer usuário, inclusive Master:
| Condição | Efeito no menu |
|---|---|
| Tipo de portal | Tenant VAREJO ≠ tenant DISTRIBUIDOR/INDUSTRIA. Cada tipo tem árvore de menu própria — o fornecedor nunca exibe Terus Production, Terus Chain (visão rede), Painel Comprador etc. |
| Varejo ativo (fornecedor) | Sem varejo selecionado na barra lateral, a maior parte dos itens operacionais fica oculta. |
| Unitização (fornecedor × varejo) | Terus Unitization inteiro depende de usa_unitizacao ou usa_api_logistica na config de pedidos do par. |
Módulo contratado (core.tenant_modulo) |
Itens com modulo: "alertas", "inventario", "cadeia" etc. só aparecem se o módulo estiver ativo no tenant — exceto Master e Admin Terus (bypass no frontend). |
| Menu colapsado | Módulos fechados no accordion podem parecer “ausentes”; expandir antes de concluir diagnóstico. |
Legenda de acesso por módulo:
| Símbolo | Significado |
|---|---|
| Completo | Todos os itens do módulo disponíveis naquele portal, respeitando varejo/unitização quando aplicável |
| Parcial | Subconjunto explícito (listado na Obs) |
| Condicional | Depende de escopo, módulo contratado ou configuração do par fornecedor×varejo |
| — | Não disponível naquele portal ou não concedido por padrão |
| Perfil | Código | Portal típico | Terus Alert | Terus Order | Terus Unitization | Terus Task | Terus Strategy | Terus Production | Terus Chain | Administração | Terus Admin | MASTER (BETA) | Obs |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Master (usuário) | master |
Fornecedor ou Varejo | Completo | Completo | Condicional | Completo | Completo* | Completo† | Completo‡ | Completo | — | Sim | Não é perfil — flag username=master. Bypass de todas permissões menu.* e módulos no frontend. Ainda sujeito a: portal fornecedor vs varejo, varejo ativo, unitização. *No fornecedor, Strategy tem menos itens que no varejo (por design). †Production só no varejo. ‡Chain no varejo exige módulo cadeia; no fornecedor só “Performance no Varejo” em Order. |
| Admin Cliente | admin_cliente |
Fornecedor ou Varejo | Completo | Completo | Condicional | Completo | Completo* | Condicional† | Condicional‡ | Completo | — | — | Recebe todas menu.* via perfil (migration 140+). Não usa bypass Master; precisa de módulos ativos no tenant para itens com modulo. Atribuído automaticamente ao usuário master em muitos tenants. |
| Admin Terus | admin_terus |
Terus Admin (terus_admin) |
— | — | — | — | — | — | — | — | Completo | Sim | Menu próprio (TERUS_ADMIN_MENU: tenants, agents, Diagnóstico de Integração, migrador, etc.). Bypass total de menu.* (isAdmin). Não é o portal operacional D'Origem/São Luiz. |
| Comprador Varejo | COMPRADOR_VAREJO |
Varejo | Parcial | Parcial | — | — | Parcial | — | Parcial | — | — | — | Escopo carteira de comprador (DE-PARA). Menu: AlertBoard, Atividades, Briefing, Lacunas§; Strategy (vendas, compras, estoques, rupturas, comportamento, metas); Pedido Reposição; Reversa Aprovação; Chain (score + resultado). Sem Administração por padrão. Bloqueado se comprador não vinculado. §Lacunas: Master ou comprador ativo. |
| Vendedor Fornecedor | VENDEDOR_FORNECEDOR |
Fornecedor | Condicional | Condicional | Condicional | Parcial | Condicional | — | Parcial | — | — | — | Sem menu.* no perfil por padrão → aplica pacote aberto OPEN_FORNECEDOR_MENU se o usuário não tiver nenhuma menu.*. Escopo RCA: só varejos autorizados; dados filtrados por código vendedor no DE-PARA. Bloqueado se perfil sem vínculo de vendedor. Exclusivo em relação a Gestor de Carteira. |
| Gestor de Carteira | GESTOR_CARTEIRA |
Fornecedor | Condicional | Condicional | Condicional | Condicional | Condicional | — | Condicional | — | — | — | Escopo por SKUs das carteiras atribuídas em Usuários (cadastro em Carteiras de produtos). Bloqueado se o perfil existir sem carteira ativa. Exclusivo em relação a Vendedor Fornecedor. Master/Admin não entram nesse recorte. |
| Promotor Fornecedor | PROMOTOR_FORNECEDOR |
Fornecedor (+ app mobile) | — | — | — | Parcial | — | — | — | — | — | — | Foco Terus Task mobile. No web: sem permissões default; se sem menu.*, pode herdar pacote fornecedor aberto. Escopo: varejos/filiais/vendedores vinculados no cadastro. |
| Operador Produção | OPERADOR_PRODUCAO |
Varejo | — | — | — | — | — | Parcial | — | — | — | — | Apenas operação: Dashboard, Ordens, Estoque produção, Perdas, Relatórios. Sem Escopo, Produtos, Eventos, Parâmetros (conceder menu.production.escopo etc. manualmente ou usar Master). |
Perfis legados (sem menu.*) |
(variado) | Ambos | Condicional | Condicional | Condicional | Condicional | Condicional | Condicional | Condicional | Condicional | — | — | Usuários migrados do portal 1.0 com permissões legadas (alertas.ver, dashboard.ver, …) mapeadas em LEGACY_PERMISSION_GRANTS. No fornecedor, soma-se OPEN_FORNECEDOR_MENU. |
| Perfil customizado | (tenant) | Ambos | Conforme permissões | Conforme permissões | Conforme permissões | Conforme permissões | Conforme permissões | Conforme permissões | Conforme permissões | Conforme permissões | — | — | Ao marcar qualquer menu.*, o pacote aberto do fornecedor deixa de valer — só entram itens explícitos + PUBLIC_MENU (ex.: DE-PARA EAN). |
Muitos chamados confundem os dois. No caso D'Origem com usuário Master:
| Aspecto | Master | Admin Cliente |
|---|---|---|
| Identificação | username = master |
Perfil admin_cliente no usuário |
Permissões menu.* |
Bypass (isMaster) |
Todas via app.perfil_permissao |
Módulos (hasModulo) |
Bypass | Exige módulo ativo no tenant |
| E-commerce (Integrações) | Sim (somenteMaster) |
Não (salvo permissão explícita) |
| Bloco MASTER (BETA) | Sim | Não |
| Menu “incompleto” no fornecedor | Esperado para itens só-varejo | Idem |
Conclusão: Master não está restrito por perfil. Se o menu parece menor que o do varejo, a causa é o tipo de portal fornecedor, não falta de permissão.
OPEN_FORNECEDOR_MENU)Aplica-se quando o usuário não possui nenhuma permissão menu.* (comum em Vendedor Fornecedor sem customização):
| Módulo | Itens incluídos no pacote |
|---|---|
| Terus Alert | AlertBoard, Comportamento (com varejo ativo) |
| Terus Order | Pedido Venda, Sugestão de Pedido, Negociação, Sell-out/in, Performance, Reversa, Catálogo, Relacionamentos, DE-PARA (+ lacunas/EAN conforme varejo), Integrações |
| Terus Unitization | Rastreio, Picking, Etiquetas, Parâmetros, Impressoras (se unitização ativa) |
| Terus Task | Histórico / relatórios operacionais |
| Terus Strategy | Vendas Varejo, Estoques, Rupturas |
| Terus Chain | Performance no Varejo (item em Order) |
Não incluído no pacote aberto: Administração (Empresas, Usuários), Config. Pedidos, E-commerce, cadastros avançados — exigem menu.* ou perfil Admin.
menu.* defaultConcedidas automaticamente (migrations 210 + 219):
menu.alert.alertboard
menu.alert.atividades
menu.alert.briefing
menu.alert.lacunas_sortimento
menu.strategy.vendas
menu.strategy.compras
menu.strategy.estoques
menu.strategy.rupturas
menu.strategy.comportamento
menu.strategy.metas
menu.strategy.desempenho_metas
menu.strategy.rastreio
menu.order.pedidos_venda
menu.log.reversa.aprovacao
menu.chain.score_fornecedores
menu.chain.resultado_integracao
Itens extras visíveis só com escopo comprador ativo (Painel Comprador, Carteira, Lacunas na visão comprador): dependem de escopo_comprador.ativo = true no /api/auth/me.
menu.* defaultmenu.production.dashboard
menu.production.ordens
menu.production.estoque
menu.production.perdas
menu.production.relatorios
Configuração (Escopo, Produtos, Eventos, Parâmetros) não vem no perfil — apenas Master, Admin Terus ou grants manuais.
menu.*menu.* existentes via migrations 140, 141, 143, 153, 167, 168, 180, 181, 214, 219 etc.terus_admin; menu administrativo global, fora da árvore PORTAL_MENU_TREE.Referência rápida para explicar menu “menor” no fornecedor (vale para Master):
| Módulo / grupo | Portal Varejo | Portal Fornecedor |
|---|---|---|
| Terus Production | Sim | — |
| Terus Chain (painel integração) | Sim | — |
| Painel / Carteira Comprador | Sim | — |
| Strategy → Metas, Compras, Comportamento (visão loja) | Sim | — |
| Strategy → Vendas (4 telas) | Sim | 1 tela (Vendas Varejo) |
| Performance fornecedor no varejo | Score rede | Performance no Varejo (Order) |
| Pedido Venda / Sugestão de Pedido / Negociação / DE-PARA | — | Sim |
| MASTER (BETA) PDF | Master | Master |
GET /api/auth/me
| Campo | Uso |
|---|---|
is_master |
true → bypass de permissões |
permissoes |
Lista efetiva; presença de menu.* desliga pacote aberto fornecedor |
escopo_vendedor |
Vendedor Fornecedor — bloqueio ou varejos permitidos |
escopo_carteira_fornecedor |
Gestor de Carteira — bloqueio ou ids/códigos das carteiras |
escopo_comprador |
Comprador Varejo — bloqueio ou códigos |
modulos_ativos |
Módulos do tenant |
tipo_cliente |
Define portal varejo vs fornecedor |
Permissões do perfil (cadastro):
GET /api/cadastros/perfis
portal-terus (docs/terus-production-guia.md)