Contexto: Estoy importando un foro de vBulletin a Discourse.
Me gustaría configurar cosas como CDN, copias de seguridad remotas, etc., antes de permitir que los usuarios existentes accedan al contenido del foro.
Prefiero no poner el foro en modo solo lectura, ya que sería frustrante para los usuarios que, después de varios meses, finalmente puedan ver el contenido de nuevo (¡y actualizado!) pero no puedan interactuar con él. En este contexto, si el contenido está disponible, también debería ser interactivo.
Básicamente, necesito que Discourse esté disponible para el personal, pero que muestre una página de “mantenimiento” para los demás usuarios, incluso si teóricamente pueden iniciar sesión, y que mi sitio web siga pudiendo comunicarse con servicios como el CDN para poder configurarlos correctamente.
Que yo sepa, la forma más sencilla es configurar el sitio como requiere inicio de sesión, activar la opción debe aprobar usuarios y dirigir SMTP a algo como MailHog. No recuerdo si el importador aprueba usuarios automáticamente; si es así, puedes hacer algo como esto en la consola de Rails:
approved_users = AdminUserIndexQuery.new(query: 'approved', stats: false).find_users_query
approved_users.each do |u|
u.approved = false
u.save!
end
Y luego desactivar la aprobación cuando estés listo.
De esta manera, no enviarás ningún mensaje públicamente durante la migración y podrás ver todos los mensajes que haya generado Discourse en caso de que algo salga mal.
A menos que elijas migrar las contraseñas, los usuarios tendrán que restablecer sus credenciales de todos modos.
Pero ocultaré temporalmente los botones de inicio de sesión, así como reemplazaré la frase por algo como “En construcción. ¡Mantente atento!”
Los usuarios que intenten iniciar sesión desde /login no podrán de todos modos, ya que la importación de contraseñas no funcionó y los correos electrónicos para personal no autorizado están desactivados, por lo que tampoco podrán iniciar sesión con su correo electrónico ni restablecer su contraseña.
Supongo que esta solución puede lograr lo que necesito, ¿verdad?