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に戻します。これは、新しい環境での自動アカウント削除のアプローチとして合理的でしょうか?