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 :
- 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 ?
- 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.
- 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_agejours, 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 ?

