Funções (Roles)
Pré-requisitos de acesso
- Permissão (módulo):
manageRoles - Licença/Feature: Nenhuma
- Contêiner do menu: GERAL → grupo Usuários
O que é / quando usar
Tela de definição das Funções (roles) do BackOffice. Uma Função é um conjunto nomeado de módulos (áreas/ações). Aqui você cria, edita, visualiza e exclui roles e escolhe quais módulos cada uma libera. As roles criadas aqui são depois atribuídas a administradores em Permissões do usuário. Use ao montar perfis de acesso (ex.: "Atendimento", "Financeiro", "Compliance").
Pré-condições
- Permissão:
manageRoles(enum CPM + módulo dinâmico no DB). - Licença/Feature: nenhuma.
- Dependências: os Módulos disponíveis para seleção vêm do catálogo gerenciado em Módulos de permissão — um módulo só pode ser atribuído a uma role se existir nesse catálogo.
Passo a passo
- Acesse o menu Usuários → Funções (
/users/roles). - Use a busca por nome para localizar uma role.
- Clique em Adicionar para criar; ou nos ícones de visualizar/editar/excluir na linha.
- No diálogo: dê um nome à função e mova os módulos entre Disponíveis e Atribuídos (clique no módulo para alternar).
- Salve (criar) ou Editar/Salvar (existente).
Campos (diálogo de Função)
| Campo | O que é | Obrigatório? | Efeito no sistema/backend |
|---|---|---|---|
| Nome | Nome da função | Sim | Identifica a role; salvo via addRoles/editUser (CPM-RoleController). Necessário para confirmar |
| Módulos atribuídos | Conjunto de módulos liberados pela role | Sim (ao menos 1) | Define o que o admin com essa role enxerga e executa. Salvo em roles.modules. A UI usa as flags para liberar botões (*appHasPermission) e o backend usa o enum para validar as rotas |
O diálogo aceita roles em dois formatos de
modules(array legado[{id, module, description}]ou objeto{ "viewUsers": true }) e normaliza para a lista exibida, preservando chaves fora do catálogo no save para não perdê-las.
Módulos mais usados (referência)
A lista completa vem do catálogo de Módulos. Exemplos de chaves e o que liberam:
| Módulo | Libera |
|---|---|
admin | Acesso administrativo amplo (guards de várias telas) |
viewUsers / viewUser | Lista e detalhes de usuários |
manageRoles | Esta tela e Permissões do usuário |
manageToken | Tokenização, NFTs, coleções, detentores, pacotes |
viewPayments / viewWithdrawals | Pagamentos manuais / saques |
viewGeneralJournal | Transações gerais / receitas da plataforma |
manageDividends | Distribuição financeira |
sendBalance | Crédito/débito manual de saldo |
manualUserAllocation | Alocação manual em nome do usuário |
getPrivateWallet | Visualizar chave privada |
Ações e modais
- Adicionar / Editar: abre o diálogo de função. Visualizar abre em modo leitura, com opção de alternar para edição.
- Excluir: remove a função (bottom-sheet de confirmação). Excluir uma role em uso deixa os admins associados sem aquele conjunto de módulos — reatribua antes.
Regras de negócio / cuidados
Atenção
- Uma Função sem módulos não pode ser salva (mínimo 1 módulo + nome).
- Permissão é dupla. Adicionar um módulo à role aqui só surte efeito se a chave também existir no enum CPM (backend) e no catálogo de Módulos (DB). Módulos "fantasma" (chave sem catálogo) ficam preservados, mas não liberam ação nova até serem cadastrados nos dois lados.
- Tratar a concessão de módulos sensíveis (
admin,sendBalance,manualUserAllocation,getPrivateWallet,panicButton) com o princípio do menor privilégio.