Контекст: Я импортирую форум 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, всё равно не смогут этого сделать, поскольку импорт паролей не сработал, а отправка писем для нештатных сотрудников отключена, поэтому они не смогут войти по электронной почте или сбросить пароль.
Думаю, это решение позволит достичь нужного результата, верно?
Я бы порекомендовал использовать MailHog или аналогичное решение, чтобы убедиться, что Discourse не генерирует огромное количество уведомлений по электронной почте.
Без возможности контроля вы рискуете открыть шлюзы, повторно включив электронную почту.