Impossible de supprimer un utilisateur avec des MP, message d'erreur trompeur

Nous utilisons SSO et lorsqu’une personne ferme son compte, nous supprimons également son compte Discourse via l’API (ou nous l’anonymisons s’il a publié des messages).

Cependant, il semble qu’il y ait un problème, car nous observons des erreurs 403 lors de cette opération. En creusant un peu, j’ai découvert que c’est le message d’erreur renvoyé par l’appel API :

{
    "http_code": 403,
    "body": "{\"deleted\":false,\"message\":\"L'utilisateur XXX a 0 messages, il ne peut donc pas être supprimé.\"}"
}

Pourtant, s’il n’y a aucun message, la suppression devrait être possible ? En examinant les informations de ce compte en particulier, il n’y a effectivement aucun message public :

Cependant, il y a un message privé envoyé à Discobot (tutoriel).

Donc, je pense qu’il y a plusieurs points à considérer ici :

  1. Le message d’erreur qui refuse la suppression de l’utilisateur ne compte que les messages publics, mais ne devrait-il pas inclure les messages privés également ?
  2. En fait, les messages privés devraient-ils empêcher la suppression d’un compte ? Je comprends la logique selon laquelle supprimer un compte complique la narration dans un sujet public, mais pour un message privé, cet argument semble moins solide.
  3. Si la réponse à la question précédente est toujours oui (c’est-à-dire que les messages privés devraient toujours empêcher la suppression d’un compte), les messages envoyés à Discobot devraient-ils aussi compter pour empêcher la suppression d’un compte ? Ce que je veux dire, c’est que la plupart des gens suivent le tutoriel et envoient des messages privés à Discobot… ce qui rend virtuellement impossible la suppression de nombreux comptes qui n’ont jamais participé, simplement parce qu’ils ont suivi le tutoriel (peut-être que cela ne s’applique qu’après delete_user_max_post_age jours, mais cela reste vrai).

Enfin, et je ne suis pas sûr que cela soit lié au point 1, mais lors de la vérification des informations API pour cet utilisateur, il est renvoyé :
post_count: 0
can_be_deleted: 1
can_delete_all_posts: 0

Pourtant, cet utilisateur ne peut effectivement pas être supprimé. La logique de can_be_deleted compte-t-elle uniquement les messages publics ?

4 « J'aime »

Excellent enquête ! Nous devrions au minimum corriger le message d’erreur.

"body": "{\"deleted\":false,\"message\":\"L'utilisateur XXX a 0 publication, il ne peut donc pas être supprimé.\"}"

Il devrait indiquer :

L'utilisateur a x publication(s), il ne peut donc pas être supprimé.

Nous devrions probablement aussi suggérer la situation, car cela arrive assez fréquemment :

L'utilisateur a x publication(s), qu'il s'agisse de publications publiques ou de messages privés, il ne peut donc pas être supprimé.

3 « J'aime »

C’est fait. J’ai également corrigé le nombre de messages incorrect dans le message.

4 « J'aime »

Merci @vinothkannans ! :+1:

Existe-t-il une possibilité d’examiner également le fait que can_be_deleted semble indiquer qu’un compte peut être supprimé alors qu’il ne le peut pas (en raison des MP) ? Pour le moment, nous devons essayer de supprimer l’utilisateur en premier, puis basculer vers l’anonymisation en cas d’échec (car can_be_deleted ne peut pas être considéré comme fiable).

2 « J'aime »

Le problème évoqué dans le sujet suivant pourrait-il être lié, à un titre quelconque, aux problèmes discutés dans ce sujet ?

2 « J'aime »

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