Soft disable user with reason (Admin only)
PUT/company/users/disabled/disable/:id
Desabilita um usuário com soft delete (método preferido sobre DELETE simples) permitindo salvar uma razão e mensagem explicativa.
Objetivo
Permitir que administradores desabilitem usuários de forma controlada com registro da razão, facilitando auditoria e possível reativação.
Casos de Uso
- Desabilitar usuário por falta de pagamento
- Suspender conta por descumprimento
- Bloquear usuário temporariamente com motivo documentado
- Desabilitar funcionário que deixa a empresa
Autenticação & Autorização
- Requer JWT válido (middleware m.isloged)
- Requer função admin ou dev (middleware m.isAdmin)
Comportamento
- Executa user.delete() (soft delete do mongoose-delete)
- Define status = false
- Atualiza campos de razão: reason, reasonMessage
- Salva data de desabilitação em reasonDate
- Define deleted = true e deletedAt automaticamente
Corpo da Requisição
- reason: Razão da desabilitação (padrão: BAD_USER)
- message: Mensagem explicativa opcional
Comparação com outros métodos de desabilitação
- DELETE /:id: Soft delete simples (deleted=true)
- DELETE /delete/:id: Apenas desabilita (status=false)
- PUT /disabled/disable/:id: Soft delete + razão + mensagem (RECOMENDADO)
Processo
- Busca usuário por ID
- Se não existir, retorna 404
- Executa user.delete() para soft delete
- Atualiza reason e reasonMessage do body
- Define reasonDate = now
- Define status = false
- Salva alterações
- Retorna confirmação com deletedAt
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 500
Usuário desabilitado com sucesso com exclusão suave
Solicitação inválida (ID não fornecido)
Não autorizado (função de administrador ou desenvolvedor necessária)
Proibido (usuário não é administrador)
Usuário não encontrado.
Erro ao desabilitar usuário