Usuários — Superadmin
Visão Geral
O superadmin pode gerenciar todos os usuários da plataforma (de todos os tenants) a partir de /superadmin/users.
Localização
- View:
frontend-react/src/views/superadmin/UsersView.tsx - Modal:
frontend-react/src/components/superadmin/UserModal.tsx - Controller:
backend/src/superadmin/superadmin-users.controller.ts - Service:
backend/src/users/users.service.ts
API
Todas as rotas exigem @Roles(Role.Superadmin) via JWT.
| Método | Rota | Descrição |
|---|---|---|
GET | /api/superadmin/users | Lista paginada de usuários |
POST | /api/superadmin/users | Cria novo usuário |
PUT | /api/superadmin/users/:id | Atualiza usuário |
DELETE | /api/superadmin/users/:id | Remove usuário |
Query Params (GET)
| Param | Tipo | Descrição |
|---|---|---|
page | number | Página (default: 1) |
limit | number | Itens por página (default: 20) |
tenantId | string | Filtrar por tenant |
role | string | Filtrar por papel |
search | string | Busca por nome ou email |
Colunas da Tabela
| Coluna | Descrição |
|---|---|
| Nome / Email | Informações de identificação |
| Role badge | Papel colorido (customer / staff / admin / superadmin) |
| Tenant | Nome do restaurante vinculado |
| Criado em | Data de criação |
| Ações | Botões editar / excluir |
UserModal — Campos
| Campo | Obrigatório | Descrição |
|---|---|---|
name | Sim | Nome completo |
email | Sim | Email único |
password | Criação apenas | Senha (hash bcrypt no service) |
role | Sim | customer / staff / admin / superadmin |
tenantId | Não | Vincular a um tenant específico |
Controle de Acesso
- Guard:
JwtAuthGuard + @Roles(Role.Superadmin) - Superadmins têm
tenant: null— bypass doTenantGuard - A rota
/api/superadmin/usersestá montada noSuperadminModule, separada das rotas tenant-scoped