域名被列入黑名单后,已通过验证的账户不受影响,仍可继续使用。
我想请教一下,是否有人知道如何根据注册邮箱域名批量销毁(删除用户及其所有内容)、暂停或禁言用户?
在我的情况下,这将允许删除或禁用数十万个利用通配符域名技术注册的账户。
域名被列入黑名单后,已通过验证的账户不受影响,仍可继续使用。
我想请教一下,是否有人知道如何根据注册邮箱域名批量销毁(删除用户及其所有内容)、暂停或禁言用户?
在我的情况下,这将允许删除或禁用数十万个利用通配符域名技术注册的账户。
这是迁移过来的数据吗?删除这么多账户会非常、非常痛苦——除非它们几乎没有任何内容。
你可以在 Rails 控制台中完成,但这听起来可能会非常混乱。
@codinghorror - 这不是迁移的数据。我不介意过程痛苦且缓慢,因为让账户保留下来的后果可能更糟:hot_face。就内容量而言,情况各异:有些账户没有任何内容(通常垃圾邮件发送者打算以后使用这些账户),有些内容很少,有些则大量存在。
@pfaffman 太好了!你知道怎么做吗?哈哈:pray:
您考虑过对用户进行匿名化处理吗?
@fzngagan 这或许是个不错的解决方案。请问是否有批量处理的方法?
可以。这可以通过 Rails 控制台完成。但问题是,您希望根据什么标准来对这些数据进行匿名化处理?
@fzngagan 太好了!标准是:所有注册邮箱使用特定域名的邮件。例如:example@blacklisted.com、example2@blacklisted.com
在 Rails 控制台中输入以下命令,查看是否得到预期结果(将邮箱模式中的 ‘@gmail.com’ 替换为你的邮箱域名):
idlist = UserEmail.where("email like '%@gmail.com'").pluck(:user_id)
users = User.find(idlist)
然后(请谨慎操作):
system_user = Discourse.system_user
users.each do |user|
UserAnonymizer.new(user, system_user).make_anonymous
end
我并非性能优化方面的专家,因此无法确切知道当用户数量较大时会发生什么情况。
是的。Rails 控制台几乎可以执行代码中可完成的所有操作。