Bug de suppression permanente

Je pense qu’il y a un bug avec la suppression permanente.

J’ai supprimé quelques messages. Maintenant, je ne peux plus ouvrir la liste des messages supprimés.

Vous pouvez voir ici que j’ai toujours 342 messages supprimés. Mais quand je clique dessus. Cela mène à une page 404.

Je peux toujours ouvrir la liste de suppression des autres utilisateurs, mais pas la mienne.

Y a-t-il quelque chose que nous puissions faire pour résoudre ce problème ?

3 « J'aime »

D’accord, je pense avoir trouvé les étapes pour reproduire le bug.

Je ne suis pas sûr que vous ayez besoin de deux comptes, mais voici ma situation :

  1. Le compte A crée un sujet, puis l’épingle et le ferme.
  2. Le compte A supprime le sujet de manière logicielle.
  3. Attendez 5 minutes, connectez-vous avec le compte B et ouvrez la liste de suppression du compte A (par exemple : www.example.com/u/username/deleted-posts).
  4. Trouvez le message que le compte A vient de supprimer de manière logicielle, ouvrez-le.
  5. Si vous essayez de supprimer définitivement le message, un message d’erreur s’affichera : “le message ne peut pas être supprimé car il y a d’autres messages”.
  6. Vous devez supprimer le message d’épinglage et de fermeture du sujet sous le message, puis réessayer la suppression définitive.
  7. Vous réussirez, mais vous ne pourrez plus ouvrir la liste de suppression du compte A.
3 « J'aime »

Quelqu’un pourrait-il jeter un œil à ceci, s’il vous plaît ?

Je nettoyais des publications contenant des informations sensibles et maintenant nous sommes bloqués…

3 « J'aime »

Pouvez-vous toujours accéder aux messages supprimés du sujet/message privé et les supprimer définitivement à partir de là, ou ne pouvez-vous plus du tout voir vos messages supprimés ?

2 « J'aime »

Je peux y accéder depuis le post.

Mais comme je ne sais pas de quels posts il s’agit, la liste de suppression de posts est essentielle.

Sans elle, je dois parcourir manuellement tous les messages privés et les sujets publics pour les trouver.

2 « J'aime »

J’ai aussi essayé deleted-posts.json. Mais les informations ne contiennent pas les publications supprimées.

Elles montrent seulement des choses comme « user_badges » et d’autres informations utilisateur.

2 « J'aime »

Si je peux obtenir une liste d’identifiants de publication supprimée d’une manière ou d’une autre, cela m’aiderait aussi.

2 « J'aime »

J’essaie de reproduire :

  • L’administrateur A crée un nouveau sujet, l’épingle globalement (pour toujours), puis le ferme

  • L’administrateur A supprime ensuite le sujet de manière logicielle

  • L’administrateur B trouve ce sujet en accédant à la liste /deleted-posts de l’administrateur A depuis son profil

  • L’administrateur B tente de supprimer définitivement le sujet - reçoit une erreur « Vous ne pouvez pas supprimer définitivement ce sujet car il y a d’autres messages. »

  • L’administrateur B supprime les petits messages d’action « épingler » et « fermer »

  • L’administrateur B retente la suppression définitive - la suppression réussit

  • Cependant, l’administrateur B ne peut plus accéder à /deleted-posts de l’administrateur A, avec une erreur GET https://greedy.jammydodger.monster/posts/jammydodger/deleted?offset=0

Bien que l’administrateur A et l’administrateur C puissent toujours accéder à la liste /deleted-posts de l’administrateur A. À court terme, @VincentAlse, pourriez-vous utiliser le compte d’administrateur secondaire pour accéder à la liste /deleted-posts afin de trouver les autres messages que vous souhaitez supprimer ? Alternativement, vous pourriez utiliser une requête data-explorer pour les identifier ?

3 « J'aime »

Salut @JammyDodger

Merci pour la confirmation. Je viens d’essayer Admin C (avec l’ancien compte et un compte nouvellement créé). Cela ne fonctionne pas pour moi. Je pense que la raison est que j’ai supprimé des publications pour de nombreux comptes différents et que la liste de suppression pour la plupart d’entre eux a été buggée.

Je vais jeter un œil à data-explorer. Puis-je y interroger les publications supprimées ?

2 « J'aime »

Ah, c’est malheureux. Si vous avez accès au plugin d’exploration de données, je pense que quelque chose comme ceci devrait reproduire la liste /deleted/posts pour un utilisateur particulier (avec post_id inclus pour faire bonne mesure) :

-- [params]
-- user_id :user_id

SELECT p.created_at AS reltime$time,
       id AS post_id,
       id
FROM posts p
WHERE p.user_id = :user_id
AND p.deleted_at IS NOT NULL
ORDER BY p.created_at DESC
4 « J'aime »

Laissez-moi essayer.

3 « J'aime »

Est-ce que cela a fonctionné pour vous @VincentAlse ? Je pense qu’il devrait y avoir plusieurs façons de trouver les messages que vous souhaitez supprimer si celui-ci ne vous a pas donné la liste dont vous aviez besoin ?

3 « J'aime »

Une question bête. Qu’est-ce que user_id ? Je pense que mon user_id est 1 d’après la page .json.

J’obtiens ce message : ActiveRecord::PreparedStatementInvalid: valeur manquante pour :user_id in /*

@JammyDodger

1 « J'aime »

En regardant cette capture d’écran, il semble que vous ayez modifié le paramètre en haut, ce qui l’empêchera de fonctionner. Si vous le laissez tel quel, :user_id, cela vous donnera une boîte de sélection lorsque vous l’exécuterez, où vous pourrez taper un nom d’utilisateur. :+1:

Alternativement, vous pourriez abandonner le paramètre et ajouter l’ID utilisateur que vous avez obtenu du JSON à la ligne WHERE p.user_id =.

Est-ce que cela a du sens?

3 « J'aime »

Il semble que vous receviez déjà de l’aide, mais cliquer dessus m’amène à /u/deleted-posts, ce qui fonctionne.

1 « J'aime »

Ça marche maintenant !

Je pensais que je devais mettre user_id dans le code.

Merci beaucoup @JammyDodger

4 « J'aime »

J’ai corrigé le bug que vous aviez signalé avec cette PR hier, qui a déjà été fusionnée et peut être déployée si vous mettez à jour votre instance Discourse :

Cependant, nous avons découvert que la suppression définitive des sujets pouvait laisser des publications d’actions mineures orphelines dans la base de données. Ce second bug a été corrigé avec :

Je pense que tout devrait fonctionner correctement maintenant. N’hésitez pas à nous faire savoir si vous rencontrez d’autres problèmes.

6 « J'aime »

Ce sujet a été automatiquement fermé après 3 jours. Les nouvelles réponses ne sont plus autorisées.