Hace unos años, nos mudamos de vBulletin a Discourse. Como parte de esta migración, también se importaron muchos usuarios baneados. Eso no es el problema. Los posts que crearon terminaron apareciendo como visibles en Discourse. Casi todos estos usuarios baneados crearon 1 o 2 posts antes de ser descubiertos y baneados, pero cualquier configuración que ocultaba sus posts en vBulletin terminó haciendo que esos posts se mostraran en Discourse. El hecho de que estos posts sean visibles es el problema.
¿Existe alguna forma de encontrar todos los posts de usuarios baneados que hayan hecho menos de tres posts y eliminarlos en masa?
Puedes encontrar todos los usuarios baneados con <3 publicaciones usando la siguiente consulta de Data Explorer:
SELECT p.user_id, COUNT(p.id) AS qtt_posts
FROM posts p
INNER JOIN users u ON u.id = p.user_id
WHERE suspended_till NOTNULL
GROUP BY user_id
HAVING COUNT(p.id) < 3
Para eliminar a los usuarios, puedes usar la API: /admin/users/{id}.json. Puedes ver la documentación aquí.