Passa al contenuto principale

Delete user with soft delete (Admin only)

DELETE 

/company/users/:id

Elimina un utente in modo permanente utilizzando soft delete (mongoose-delete). L'utente non apparirà più nelle query normali ma può essere recuperato.

Obiettivo

Consentire agli amministratori di eliminare utenti in modo sicuro con possibilità di recupero tramite soft delete.

Casi d'uso

  • Eliminare un utente che non lavora più nell'azienda
  • Eliminare account duplicati
  • Eliminare utenti di prova

Autenticazione & Autorizzazione

  • Richiede JWT valido (middleware m.isLoged)
  • Richiede ruolo admin o dev (middleware m.isAdmin)

Comportamento

  • Usa user.delete() di mongoose-delete (soft delete)
  • Imposta deleted: true e deletedAt con la data corrente
  • L'utente non appare più nelle query normali
  • Recuperabile tramite endpoint POST /disabled/reactivate/:id

Note

  • Diverso da DELETE /delete/:id che disabilita solo (status=false)
  • Questo endpoint elimina completamente il record (anche se recuperabile)

Flusso di Validazione

flowchart TD
A[Ricevi DELETE /:id] --> B{Utente Admin?}
B -->|No| C[403 Forbidden]
B -->|Sì| D{Utente Esiste?}
D -->|No| E[404 Not Found]
D -->|Sì| F[Esegui soft delete]
F --> G[Imposta deleted: true]
G --> H[Imposta deletedAt]
H --> I[Ritorna 200 OK]

Request

Responses

Utente eliminato con successo (soft delete).