Editar una preferencia de usuario para todos o un subconjunto de usuarios

:bookmark: Esta guía explica cómo editar una preferencia de usuario para todos o un subconjunto de usuarios en Discourse.

:person_raising_hand: Nivel de usuario requerido: Administrador del sistema

:warning: Se requiere acceso a la consola.

Si necesita actualizar la preferencia de usuario para todos sus usuarios o un gran subconjunto de usuarios, puede hacerlo a través de la consola rails.

Resumen

En esta guía, aprenderá:

  • Cómo acceder a la consola Rails para realizar cambios masivos
  • Ejemplos de modificación de preferencias de usuario
  • Cómo identificar los nombres de las configuraciones

Acceso a la consola Rails

Para ingresar a la consola Rails en su configuración de Discourse, ejecute los siguientes comandos:

./launcher enter app
rails c

Luego, ejecute un comando que seleccione el conjunto de usuarios que desea 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 fecha de última vista para usuarios inactivos

Establezca la fecha de última vista para los 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

Cambie a los usuarios a la configuración predeterminada para evitar que 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 está ausente para todos los usuarios

Revierta a la configuración predeterminada para evitar notificaciones por correo electrónico cuando los usuarios están activamente presentes en el sitio.

UserOption.update_all(email_level: 1)

Donde email_level puede tener los valores:

  • 0: siempre (enviar correos electrónicos incluso cuando el usuario está activo)
  • 1: solo cuando está ausente (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

Establezca la preferencia para excluir las respuestas anteriores en las notificaciones por correo electrónico.

UserOption.update_all(email_previous_replies: 0)

Donde email_previous_replies puede tener los valores:

  • 0: siempre
  • 1: a menos que se haya enviado previamente
  • 2: nunca

Para obtener más información, consulte controlar las respuestas anteriores en los correos electrónicos.

Identificación del nombre de una configuración

Para determinar el nombre de la configuración de usuario y las opciones disponibles:

  • Use el plugin Data Explorer para inspeccionar la tabla user_options.
  • Busque en el repositorio de GitHub de Discourse.

Por ejemplo, para ajustar la configuración relacionada con “Cuando publico en un tema, establecer ese tema como”, necesita modificar la opción de usuario notification_level_when_replying.

Consulte la configuración relevante para watching.

También puede configurar Docker para exponer psql y utilizar PGadmin para una gestión más sencilla.

39 Me gusta