[Majeur] Suppression d'un utilisateur : effets de bord silencieux (messages, events, DM et channels orphelins) #110
Labels
No labels
bug
enhancement
feature
groupe/chat-data
groupe/friends-blocking
groupe/input-validation
groupe/realtime-presence
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Transcendence/backend#110
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Gravité : Majeur
Rapports QA d'origine : ADMIN-13, PROFILE-19
Les messages et events du user sont supprimés en cascade, le channel de l'event reste orphelin et le DM reste chez l'autre user sans destinataire.
Détails des rapports
[ADMIN-13] Suppression d'un user : effets de bord silencieux (messages supprimés, events supprimés, canal d'event orphelin, DM fantôme) — Gravité : Mineur
DELETE /api/users/{id}(user sans fichier)GET /channels/{id}/messages: seule la réponse de B reste,messageRefremis à null) — la discussion perd son contexte.GET /channels(canal orphelin visible de tous :qa_admin_eva_0lpz).recipients: [],name: ""etlastMessage: null(conversation fantôme sans nom/participant).Le dialogue de confirmation dit seulement "The user will be remove from the database. This cannot be cancelled." sans mentionner la perte des messages/events.
Database.cs(cascades surMessage.Sender,Event.Organizer),DeleteEventCommandsupprime l'event sans leChannel;ConversationMember/recipients non nettoyés.[PROFILE-19] Suppression de compte : effets de bord incohérents (messages, DM orphelins, token encore accepté) — Gravité : Majeur
DELETE /api/me, UI Paramètres > Delete Account/login, login du compte supprimé -> 406, A disparaît deGET /users(404 sur/users/{id}), la relation d'amitié disparaît chez B.messageRef: null.recipients: [],lastMessage: null,name: ""; B peut encore y poster (201) : conversation sans destinataire.GET /api/me-> 500 (NullReferenceException) au lieu de 401 (le middleware laissetcontext.Usernul sans rejeter).backend/API/Middlewares/TokenContext.cs(utilisateur introuvable ->_nextsans 401) ;DeleteMeCommand.cs(cascade non maîtrisée pour messages/conversations/fichiers).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.