No se puede eliminar usuario con mensajes privados, mensaje de error engañoso

Estamos utilizando SSO y, cuando alguien cierra su cuenta, también eliminamos su cuenta de Discourse a través de la API (o la anonimizamos si tiene publicaciones).

Sin embargo, parece haber algo incorrecto, ya que hemos estado viendo errores 403 al realizar esta acción. Al investigar un poco, encontré que este es el mensaje de error devuelto por la llamada a la API:

{
    "http_code": 403,
    "body": "{\"deleted\":false,\"message\":\"User XXX has 0 posts, so they can't be deleted.\"}"
}

Pero, si hay 0 publicaciones, ¿no debería ser posible eliminarla? Al revisar la información de esta cuenta en particular, efectivamente no hay publicaciones:

Sin embargo, hay un mensaje privado enviado a Discobot (tutorial).

Por lo tanto, creo que hay varios puntos aquí:

  1. El mensaje de error que rechazó la eliminación del usuario solo está contando las publicaciones públicas, pero ¿quizás debería contar también las privadas?
  2. En realidad, ¿deberían los mensajes privados impedir la eliminación de una cuenta? Entiendo el razonamiento de que eliminar una cuenta complica la narrativa en un tema público, pero en un mensaje privado quizás el argumento no es tan sólido.
  3. Si la respuesta a la anterior sigue siendo afirmativa (es decir, un mensaje privado aún debería impedir la eliminación de una cuenta), ¿deberían los mensajes enviados a Discobot también contar para evitar la eliminación de una cuenta? Lo que quiero decir es que la mayoría de las personas completan el tutorial y envían mensajes privados a Discobot… lo que hace que sea prácticamente imposible eliminar muchas cuentas que nunca participaron, simplemente porque completaron el tutorial (quizás esto solo es cierto después de delete_user_max_post_age días, pero aún así).

Por último, y no estoy seguro si esto está relacionado con el punto 1, pero al verificar la información de la API de este usuario, devuelve:
post_count: 0
can_be_deleted: 1
can_delete_all_posts: 0

Pero, en efecto, este usuario no puede ser eliminado. ¿Quizás la lógica de can_be_deleted también solo cuenta las publicaciones públicas?

4 Me gusta

¡Buen trabajo de detective! Como mínimo, deberíamos corregir el mensaje de error.

"body": "{\"deleted\":false,\"message\":\"El usuario XXX tiene 0 publicaciones, por lo que no se puede eliminar.\"}"

Debería decir:

El usuario tiene x publicación(es), por lo que no se puede eliminar.

También deberíamos probablemente dar una pista sobre la situación, ya que esto ha surgido bastante a menudo:

El usuario tiene x publicación(es), ya sea publicaciones públicas o mensajes personales, por lo que no se puede eliminar.

3 Me gusta

Está hecho. También corregí el recuento de publicaciones incorrecto en el mensaje.

4 Me gusta

¡Gracias @vinothkannans! :+1:

¿Hay alguna posibilidad de que también se revise el hecho de que can_be_deleted parece indicar que una cuenta se puede eliminar cuando en realidad no puede (debido a los MP)? En este momento, tenemos que intentar eliminar al usuario primero y luego recurrir a la anonimización cuando eso falla (ya que no se puede confiar en can_be_deleted).

2 Me gusta

¿Podría el problema en el siguiente tema estar relacionado de alguna manera con los problemas que se están discutiendo en este tema?

2 Me gusta

Este tema se cerró automáticamente después de 3 días. Ya no se permiten nuevas respuestas.