Esta guía explica cómo editar una preferencia de usuario para todos los usuarios o para un subconjunto de ellos en Discourse.
Nivel de usuario requerido: Administrador del sistema
Se requiere acceso a la consola.
Si necesitas actualizar la preferencia de usuario para todos tus usuarios o para un subconjunto grande de ellos, puedes hacerlo a través de la consola de Rails.
Resumen
En esta guía, aprenderás:
- Cómo acceder a la consola de Rails para realizar cambios masivos
- Ejemplos de modificación de preferencias de usuario
- Cómo identificar los nombres de los ajustes
Acceso a la consola de Rails
Para entrar en la consola de Rails en tu configuración de Discourse, ejecuta los siguientes comandos:
./launcher enter app
rails c
Luego, ejecuta un comando que seleccione el conjunto de usuarios que deseas actualizar.
Ejemplos de modificación de preferencias de usuario
A continuación se muestran ejemplos de comandos para actualizar varias preferencias de usuario:
Establecer la última fecha de conexión para usuarios inactivos
Establece la última fecha de conexión para usuarios que nunca han iniciado sesión.
User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)
Desactivar el modo de lista de correo para todos los usuarios
Vuelve a la configuración predeterminada para evitar que los usuarios reciban correos electrónicos por cada nueva publicación.
UserOption.update_all(mailing_list_mode: false)
Establecer el nivel de correo electrónico en «solo cuando no se está conectado» para todos los usuarios
Restablece la configuración predeterminada para evitar las notificaciones por correo electrónico cuando los usuarios están activos en el sitio.
UserOption.update_all(email_level: 1)
Donde email_level puede tener los siguientes valores:
- 0: siempre (enviar correos electrónicos incluso cuando el usuario está activo)
- 1: solo cuando no se está conectado (predeterminado)
- 2: nunca
Habilitar el chat para todos los miembros del grupo beta
beta_group = Group.find_by(name: "beta")
beta_group.users.each do |user|
UserOption.where(user_id: user.id).update_all(chat_enabled: true)
end
Configurar las notificaciones por correo electrónico para excluir respuestas anteriores
Establece la preferencia para excluir respuestas anteriores en las notificaciones por correo electrónico.
UserOption.update_all(email_previous_replies: 0)
Donde email_previous_replies puede tener los siguientes valores:
- 0: siempre
- 1: a menos que ya se haya enviado por correo
- 2: nunca
Para más información, consulta cómo controlar las respuestas anteriores en los correos electrónicos.
Identificación del nombre de un ajuste
Para determinar el nombre del ajuste de usuario y las opciones disponibles:
- Utiliza el plugin Data Explorer para inspeccionar la tabla
user_options. - Busca en el repositorio de GitHub de Discourse.
Por ejemplo, para ajustar la configuración relacionada con «Cuando publico en un tema, establecer ese tema en», necesitas modificar la opción de usuario notification_level_when_replying.
Consulta la configuración relevante para seguimiento.
También puedes configurar Docker para exponer psql y utilizar PGadmin para una gestión más fácil.