Módulos de permissão
Pré-requisitos de acesso
- Permissão (módulo):
manageRoles(mesma do grupo Usuários; a rota/users/modulesnão tem item próprio no menu) - Licença/Feature: Nenhuma
- Contêiner do menu: GERAL → grupo Usuários (rota interna, sem item de menu dedicado — acessada por link interno)
O que é / quando usar
Catálogo dos módulos de permissão do sistema dinâmico — a metade "DB" do modelo de permissão dupla. Cada linha é um módulo (ex.: viewUsers, manageToken, sendBalance) com uma descrição legível. É esse catálogo que alimenta as caixas "Disponíveis/Atribuídos" da tela de Funções e o gating *appHasPermission da UI. Use principalmente para revisar os módulos existentes e ajustar suas descrições.
A rota é /users/modules (ModulesListComponent); não aparece como item no menu lateral — é uma configuração interna do sistema de permissões.
Pré-condições
- Permissão:
manageRoles(mesma do grupo Usuários). Permissão dupla: enum CPM + módulo dinâmico. - Licença/Feature: nenhuma.
- Dependências: os módulos aqui devem ter correspondência no enum estático
E_PERMISSION_MODULES(backend + cópia no frontend) para que o decorator@AuthenticationRequired(...)valide a rota. Um módulo só no catálogo (sem enum) libera o*ngIf/botão na UI, mas a rota é negada no backend; um módulo só no enum (sem catálogo) nunca aparece na UI.
Passo a passo
- Acesse a rota interna
/users/modules(a partir de links internos do grupo Usuários). - Use a busca para localizar um módulo pelo nome.
- Clique no ícone para visualizar ou editar um módulo.
- Ajuste a descrição e salve.
Campos (diálogo de módulo)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
Nome do módulo (module) | A chave técnica do módulo (ex.: manageToken) | Sim | Somente leitura no diálogo. É a chave casada com o enum CPM e usada pelo gating da UI. Não é editável aqui para não quebrar o vínculo com o enum |
| Descrição | Texto legível que explica o módulo | Sim | Salvo via updateUsers (CPM). Não pode ficar vazio (botão Salvar desabilitado). É o rótulo exibido nas listas de Funções |
Ações e modais
- Visualizar: abre o módulo em leitura, com botão para alternar para edição.
- Editar: permite alterar apenas a descrição e salvar.
Regras de negócio / cuidados
Atenção
- Permissão é dupla e este catálogo é só metade dela. Criar/seedar um módulo novo de produção normalmente é feito via Liquibase no DataInitializerService (seed no CPM) em conjunto com a adição da chave no enum
E_PERMISSION_MODULES(backend + cópia frontend). Editar a descrição aqui não cria efeito de permissão por si só. - O nome (chave) não é editável pelo diálogo de propósito: renomear quebraria o casamento com o enum e o gating da UI. Para introduzir uma nova ação admin, adicione a chave no enum, seede o módulo no DB e associe-o a uma Função.
- Sem o módulo cadastrado aqui, o botão/menu correspondente nunca aparece mesmo que o enum esteja correto — porque a UI usa a flag dinâmica.