Une fois les domaines mis sur liste noire, les comptes qui ont déjà été validés restent inchangés et peuvent toujours être utilisés.
Je voudrais savoir si quelqu’un connaît une méthode pour détruire en masse (supprimer l’utilisateur et tout son contenu), suspendre ou mettre en sourdine des utilisateurs en fonction de leur domaine d’adresse e-mail d’inscription ?
Dans mon cas, cela permettrait de supprimer ou de désactiver des centaines de milliers de comptes qui ont utilisé la technique du domaine catch-all pour s’inscrire.
@codinghorror - Ce ne sont pas des données migrées. Je n’ai pas d’objection à ce que ce soit douloureux et lent, car l’alternative de laisser les comptes en l’état serait probablement pire En ce qui concerne la quantité de contenu, c’est un mélange : certains n’en ont aucun (généralement les spammeurs prévoient d’utiliser ces comptes plus tard), d’autres en ont un minimum, et d’autres encore en ont des quantités massives.
Dans la console Rails, saisissez ces commandes et vérifiez si elles donnent les résultats attendus (remplacez votre motif d’adresse e-mail par ‘@gmail.com’)
idlist = UserEmail.where("email like '%@gmail.com'").pluck(:user_id)
users = User.find(idlist)
puis (procédez avec prudence)
system_user = Discourse.system_user
users.each do |user|
UserAnonymizer.new(user, system_user).make_anonymous
end
Je ne suis pas expert en matière de performances, je ne sais donc pas exactement ce qui se passerait si le nombre d’utilisateurs était important.