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
- 200
- 401
- 403
- 404
Utente eliminato con successo (soft delete).
Non autorizzato (è richiesto il ruolo di admin o dev)
Vietato (l'utente non è amministratore)
Utente non trovato