休眠ユーザーを停止する短いRubyスクリプトを評価してください

Hmm、それを見ると、一時停止するのではなく、アカウントをサイレンスすべきだと思います。アカウントが一時停止されると、ユーザーはアカウントを請求するためにログインできなくなります。

以下に改訂版を示します…

バージョン 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