Contesto: Sto importando un forum vBulletin su Discourse.
Vorrei configurare cose come CDN, backup remoti, ecc., prima di permettere agli utenti esistenti di accedere ai contenuti del forum.
Preferisco non impostare il forum in modalità sola lettura, poiché sarebbe frustrante per gli utenti, dopo alcuni mesi, vedere finalmente di nuovo i contenuti (e aggiornati!) ma non poter interagire. In questo contesto, se i contenuti sono disponibili, dovrebbero essere anche interattivi.
Quindi, di base, avrei bisogno che Discourse fosse accessibile allo staff, ma mostrasse una pagina di “manutenzione” agli altri utenti, anche se teoricamente potrebbero accedere, e allo stesso tempo permettere al mio sito web di comunicare con servizi come il CDN per poterli configurare correttamente.
Per quanto ne so, il modo più semplice è impostare il sito su “accesso richiesto”, attivare “è necessario approvare gli utenti” e indirizzare SMTP verso qualcosa come MailHog. Non ricordo se l’importatore approvi automaticamente gli utenti; in tal caso, puoi fare qualcosa di simile nella console di Rails:
approved_users = AdminUserIndexQuery.new(query: 'approved', stats: false).find_users_query
approved_users.each do |u|
u.approved = false
u.save!
end
Quindi disattiva l’approvazione quando sei pronto.
In questo modo non invierai alcun messaggio pubblicamente durante la migrazione e potrai visualizzare tutti i messaggi generati da Discourse nel caso in cui qualcosa vada storto.
A meno che tu non scelga di migrare le password, gli utenti dovranno comunque reimpostare le proprie credenziali.
Ma nascondere temporaneamente i pulsanti di accesso, sostituendo anche la frase con qualcosa come “In costruzione. Restate sintonizzati!”
Gli utenti che proveranno ad accedere da /login non potranno farlo comunque, dato che l’importazione delle password non ha funzionato e le email per i non membri dello staff sono disabilitate, quindi non potranno accedere con l’email né reimpostare la password.
Credo che questa soluzione possa fare al caso mio, giusto?