Soft disable user with reason (Admin only)
PUT/company/users/disabled/disable/:id
Disabilita un utente con soft delete (metodo preferito rispetto a DELETE semplice) permettendo di salvare una ragione e un messaggio esplicativo.
Obiettivo
Consentire agli amministratori di disabilitare gli utenti in modo controllato con registrazione della ragione, facilitando audit e possibile riattivazione.
Casi d'uso
- Disabilitare utente per mancato pagamento
- Sospendere account per inadempienza
- Bloccare utente temporaneamente con motivo documentato
- Disabilitare dipendente che lascia l'azienda
Autenticazione & Autorizzazione
- Richiede JWT valido (middleware m.isloged)
- Richiede ruolo admin o dev (middleware m.isAdmin)
Comportamento
- Esegue user.delete() (soft delete di mongoose-delete)
- Imposta status = false
- Aggiorna campi di ragione: reason, reasonMessage
- Salva data di disabilitazione in reasonDate
- Imposta deleted = true e deletedAt automaticamente
Corpo della richiesta
- reason: Ragione di disabilitazione (default: BAD_USER)
- message: Messaggio esplicativo opzionale
Confronto con altri metodi di disabilitazione
- DELETE /:id: Soft delete semplice (deleted=true)
- DELETE /delete/:id: Solo disabilita (status=false)
- PUT /disabled/disable/:id: Soft delete + ragione + messaggio (RACCOMANDATO)
Processo
- Cerca utente per ID
- Se non esiste, restituisce 404
- Esegue user.delete() per soft delete
- Aggiorna reason e reasonMessage dal body
- Imposta reasonDate = now
- Imposta status = false
- Salva modifiche
- Restituisce conferma con deletedAt
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 500
Utente disabilitato con successo tramite soft delete.
Richiesta non valida (ID non fornito)
Non autorizzato (è richiesto il ruolo admin o dev)
Vietato (l'utente non è amministratore)
Utente non trovato.
Errore durante la disabilitazione dell'utente