インポートしたサイトを、スタッフやCDNなどの設定に必要なサービスのみにアクセス可能にし、既存ユーザーにはアクセスできないようにする方法は?

コンテキスト:vBulletin フォーラムを Discourse に移行しています。

既存のユーザーがフォーラムコンテンツにアクセスする前に、CDN やリモートバックアップなどの設定を完了させたいと考えています。
フォーラムを「読み取り専用」モードに設定するのは避けたいです。数ヶ月ぶりに(更新された)コンテンツを見られるのに、対話できないのはユーザーにとってフラストレーションが溜まるからです。この文脈では、コンテンツが利用可能であれば、対話機能も利用可能であるべきです。

つまり、Discourse はスタッフには利用可能にしつつ、他のユーザーには「メンテナンス中」ページを表示させたいのです。理論的にはログインは可能ですが、CDN などのサービスとウェブサイトを通信させて適切に設定できるようにする必要があります。

これを実現する最も簡単な方法は何かご存知ですか?

私の知る限り、最も簡単な方法は、サイトを「ログイン必須」にし、「ユーザーの承認を必須」に設定し、SMTP を MailHog などのものに設定することです。インポーターがユーザーを自動的に承認するかどうかは覚えていませんが、もしそうなら、Rails コンソールで以下のような処理を行うことができます。

approved_users = AdminUserIndexQuery.new(query: 'approved', stats: false).find_users_query

approved_users.each do |u|
  u.approved = false
  u.save!
end

そして、準備ができたら承認機能をオフにします。

こうすることで、移行中に公開メッセージが送信されることを防ぎ、何か問題が発生した場合に Discourse が生成したすべてのメッセージを確認できます。

パスワードの移行を選択しない限り、ユーザーは結局のところ認証情報をリセットすることになります。

返信ありがとうございます!

少し考えてみた結果、このページをそのまま残すことにしようと思います:

ただし、ログインボタンは一時的に非表示にし、文言を「工事中です。お楽しみに!」のような表現に置き換えようと考えています。

/login からログインしようとしても、パスワードのインポートが正常に機能していないため、また非スタッフユーザーへのメール送信が無効になっているため、メールアドレスでのログインやパスワードのリセットもできません。

これで私の要件を満たせると思いますか?

Discourse が大量の通知メールを生成していないことを確認するために、Mailhog や同様のソリューションの使用をお勧めします。

可視性がないままメール機能を再有効化すると、メールの洪水を招くリスクがあります。

保留中のメールはどこで見られますか?

もちろん、それが Mailhog の役割です。メールを受け取り、キューを表示し、メールボックスに配信するかどうかを選択できます。