Soft disable user with reason (Admin only)
PUT/company/users/disabled/disable/:id
Deshabilita un usuario con soft delete (método preferido sobre DELETE simple) permitiendo guardar una razón y mensaje explicativo.
Objective
Permitir a administradores deshabilitar usuarios de forma controlada con registro de la razón, facilitando auditoría y posible reactivación.
Use Cases
- Deshabilitar usuario por falta de pago
- Suspender cuenta por incumplimiento
- Bloquear usuario temporalmente con motivo documentado
- Deshabilitar empleado que deja la empresa
Authentication & Authorization
- Requiere JWT válido (middleware m.isloged)
- Requiere rol admin o dev (middleware m.isAdmin)
Behavior
- Ejecuta user.delete() (soft delete de mongoose-delete)
- Establece status = false
- Actualiza campos de razón: reason, reasonMessage
- Guarda fecha de deshabilitación en reasonDate
- Establece deleted = true y deletedAt automáticamente
Request Body
- reason: Razón de deshabilitación (default: "BAD_USER")
- message: Mensaje explicativo opcional
Comparison with other disable methods
- DELETE /:id: Soft delete simple (deleted=true)
- DELETE /delete/:id: Solo deshabilita (status=false)
- PUT /disabled/disable/:id: Soft delete + razón + mensaje (RECOMENDADO)
Process
- Busca usuario por ID
- Si no existe, retorna 404
- Ejecuta user.delete() para soft delete
- Actualiza reason y reasonMessage del body
- Establece reasonDate = now
- Establece status = false
- Guarda cambios
- Retorna confirmación con deletedAt
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 500
Usuario deshabilitado exitosamente con soft delete
Solicitud inválida (ID no proporcionado)
No autorizado (se requiere rol admin o dev)
Prohibido (usuario no es administrador)
Usuario no encontrado
Error al deshabilitar usuario