[Majeur] Impossible de supprimer un utilisateur qui a uploadé un fichier (500, FK Files.CreatorId) #108

Closed
opened 2026-10-28 10:32:04 +00:00 by asventi · 0 comments
Owner

Gravité : Majeur
Rapports QA d'origine : ADMIN-12

DELETE /users/{id} lève une DbUpdateException et le user reste actif ; l'UI affiche « Error 500 ».

Détails des rapports

[ADMIN-12] Impossible de supprimer un user qui a uploadé un fichier : DELETE /users/{id} -> 500 DbUpdateException (FK_Files_Users_CreatorId) — Gravité : Majeur
  • Où : DELETE /api/users/{id} (bouton "Remove User" de /admin/users) ; probablement aussi DELETE /api/me (même db.Users.Remove)
  • Étapes : 1. User qa A uploade un fichier (POST /files) 2. dede : DELETE /api/users/<A>
  • Attendu : 200, user supprimé (les fichiers sont réattribués / supprimés / créateur mis à null).
  • Obtenu : 500 DbUpdateException ... 23503: update or delete on table "Users" violates foreign key constraint "FK_Files_Users_CreatorId" on table "Files" ; l'utilisateur reste actif (GET /me de A -> 200). Côté UI (testé : /admin/users -> Remove User -> Delete) : écran plein page "Error 500" (cf. ADMIN-14) et l'utilisateur reste dans la liste. Après suppression manuelle du fichier de A, la suppression du user réussit (200).
  • Preuve : scripts/admin/t5_delete_user.py + t5b.py (stack trace) + t5c.py (200 après suppression du fichier).
  • Cause probable : backend/API/Database.cs : builder.Entity<StorageFile>().HasOne(f => f.Creator) sans OnDelete défini (défaut Restrict/NoAction) ; backend/API/Users/Delete/DeleteUserQuery.cs ne gère pas les fichiers (DeleteMeCommand non plus).

Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes.

**Gravité :** Majeur **Rapports QA d'origine :** ADMIN-12 `DELETE /users/{id}` lève une DbUpdateException et le user reste actif ; l'UI affiche « Error 500 ». ## Détails des rapports <details><summary>[ADMIN-12] Impossible de supprimer un user qui a uploadé un fichier : DELETE /users/{id} -> 500 DbUpdateException (FK_Files_Users_CreatorId) — Gravité : Majeur</summary> - Où : `DELETE /api/users/{id}` (bouton "Remove User" de /admin/users) ; probablement aussi `DELETE /api/me` (même `db.Users.Remove`) - Étapes : 1. User qa A uploade un fichier (`POST /files`) 2. dede : `DELETE /api/users/<A>` - Attendu : 200, user supprimé (les fichiers sont réattribués / supprimés / créateur mis à null). - Obtenu : 500 `DbUpdateException ... 23503: update or delete on table "Users" violates foreign key constraint "FK_Files_Users_CreatorId" on table "Files"` ; l'utilisateur reste actif (`GET /me` de A -> 200). Côté UI (testé : /admin/users -> Remove User -> Delete) : écran plein page "Error 500" (cf. ADMIN-14) et l'utilisateur reste dans la liste. Après suppression manuelle du fichier de A, la suppression du user réussit (200). - Preuve : `scripts/admin/t5_delete_user.py` + `t5b.py` (stack trace) + `t5c.py` (200 après suppression du fichier). - Cause probable : `backend/API/Database.cs` : `builder.Entity<StorageFile>().HasOne(f => f.Creator)` sans `OnDelete` défini (défaut Restrict/NoAction) ; `backend/API/Users/Delete/DeleteUserQuery.cs` ne gère pas les fichiers (`DeleteMeCommand` non plus). </details> --- _Trouvé par une campagne de tests QA automatisés (agents Claude, Playwright) sur l'environnement de dev. Les captures citées sont locales et non jointes._
asventi self-assigned this 2026-10-29 13:19:12 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Transcendence/backend#108
No description provided.