Appearance
BDD-83 — Suppression de fichier
1. User Story
En tant qu'utilisateur connecté,
Je veux pouvoir supprimer un fichier que j'ai déposé dans mon espace,
Afin de garder mon dossier client propre et à jour.
En tant que super admin,
Je veux pouvoir supprimer n'importe quel fichier,
Afin de modérer et gérer le contenu de la plateforme.
2. Critères d'acceptation
- Une action "Supprimer" est disponible sur chaque fichier via le menu d'actions.
- Une confirmation explicite est demandee avant suppression.
- Apres confirmation, le fichier disparait de la liste (refresh ou mise a jour immediate).
- Une notification de succes est affichee si la suppression aboutit.
- Une notification d'erreur est affichee en cas d'echec.
- Le fichier est supprime en base et sur S3.
3. Périmètre fonctionnel
Backend
| Fichier | Rôle |
|---|---|
back/src/api/documents/document.controller.ts | Endpoint DELETE /documents/:uuid |
back/src/api/documents/document.service.ts | Verification des droits, suppression en base et sur S3 |
back/src/exceptions/document.exceptions.ts | Exceptions metier (acces interdit, document introuvable, etc.) |
Frontend
| Fichier | Rôle |
|---|---|
front/src/components/documents/DocumentListItem.vue | Action Supprimer dans le menu contextuel fichier |
front/src/pages/admin/folders/AdminFolderDetailPage.vue | Confirmation utilisateur + refresh de la liste |
front/src/stores/folder-store.js | Appel API de suppression du document |
4. Endpoints API (rappel)
| Méthode | Chemin | Description |
|---|---|---|
DELETE | /documents/:uuid | Suppression definitive d'un document |
5. Règles métier implémentées
- Un utilisateur standard ne peut supprimer que les fichiers de son entreprise.
- Un super administrateur peut supprimer tous les fichiers.
- Une confirmation utilisateur est obligatoire avant suppression.
- Si l'utilisateur n'a pas les droits, l'API retourne
403. - Si le document n'existe pas (ou deja supprime), l'API retourne
404. - La suppression supprime la metadonnée en base et le fichier physique sur S3.
6. Points de vérification
- Le menu d'action fichier affiche bien Supprimer.
- La modale de confirmation affiche le nom du fichier cible.
- Le bouton de confirmation declenche bien
DELETE /documents/:uuid. - Le fichier disparait de la liste apres succes.
- Les erreurs API sont remontees en toast utilisateur.
7. Tests associés
Backend (unitaires)
back/src/api/documents/document.service.spec.ts- suppression autorisee (meme entreprise)
- refus
403si acces interdit - retour
404si document introuvable - suppression S3 bien declenchee
Frontend (unitaires)
front/src/__tests__/components/documents/DocumentListItem.spec.js- action Supprimer disponible dans le menu
front/src/__tests__/pages/admin/folders/AdminFolderDetailPage.spec.js- ouverture de confirmation et appel de suppression
- notification succes / echec
8. Notes d'implémentation
- Le libelle de confirmation doit etre explicite sur l'irreversibilite de l'action.
- La logique de droits doit rester centralisee cote backend (ne pas faire confiance au frontend).
- En cas d'echec S3, remonter une erreur metier sanitisee et exploitable cote UI.
