Saltar al contenido principal

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

  1. Busca usuario por ID
  2. Si no existe, retorna 404
  3. Ejecuta user.delete() para soft delete
  4. Actualiza reason y reasonMessage del body
  5. Establece reasonDate = now
  6. Establece status = false
  7. Guarda cambios
  8. Retorna confirmación con deletedAt

Request

Responses

Usuario deshabilitado exitosamente con soft delete