请评估用于暂停不活跃用户的短Ruby脚本

嗯,我看了看,我认为我应该静默账户而不是暂停账户。如果账户被暂停,用户将无法登录以认领账户。

这是修订版……

版本 0.0.2
silence_reason = 'Inactive'
User.where("views = 0 OR approved = FALSE OR last_seen_at IS NULL")
    .where("id > 0") # 避免系统用户
    .find_each do |user|
  user.silence(reason: silence_reason)
  user.change_trust_level!(TrustLevel[0])
  user.save!
  logger.log_user_silence(user, silence_reason)
  DiscourseEvent.trigger(:user_silenced, user: user)
  sleep(5)
end

是的,我会在执行任何操作之前运行备份。
是的,我知道一些现有的 TL 会被重新排序,我需要修复它们。

此外,与静默账户相比,我应该设置 Approved=false 还是 Active=false?我认为这将强制用户点击电子邮件链接,而不是手动登录,这可以验证电子邮件地址。

这一切都与我最近的帖子有关:notes-on-silencing-or-deleting-users

[编辑]
我还将“清除未激活用户的宽限期天数”设置为 7。
静默或暂停会重置此设置吗?如果是,如果用户在 7 天内未响应账户操作,我将毫不犹豫地清除他们。

最后(是的,真的),我还将“在天数后清理不活跃用户”设置为 365。我可以将其设置为 60,同时论坛仍在开放,然后让现有账户列表消失。然后将其增加回 365。这是在新的环境中自动清理账户的合理方法吗?

1 个赞