Modifier une préférence utilisateur pour tout le monde ou un sous-ensemble d'utilisateurs

:bookmark: Ce guide explique comment modifier une préférence utilisateur pour tous les utilisateurs ou un sous-ensemble d’entre eux dans Discourse.

:person_raising_hand: Niveau d’utilisateur requis : Administrateur système

:warning: L’accès à la console est requis.

Si vous devez mettre à jour la préférence utilisateur pour tous vos utilisateurs ou un large sous-ensemble d’entre eux, vous pouvez le faire via la console Rails.

Résumé

Dans ce guide, vous apprendrez :

  • Comment accéder à la console Rails pour effectuer des modifications en masse
  • Exemples de modification des préférences utilisateur
  • Comment identifier les noms des paramètres

Accès à la console Rails

Pour entrer dans la console Rails de votre installation Discourse, exécutez les commandes suivantes :

./launcher enter app
rails c

Ensuite, exécutez une commande qui sélectionne l’ensemble des utilisateurs que vous souhaitez mettre à jour.

Exemples de modification des préférences utilisateur

Ci-dessous se trouvent des exemples de commandes pour mettre à jour diverses préférences utilisateur :

Définir la date de dernière visite pour les utilisateurs inactifs

Définir la date de dernière visite pour les utilisateurs qui ne se sont jamais connectés.

User.where("last_seen_at IS NULL").update_all(last_seen_at: 1.week.ago)

Désactiver le mode liste de diffusion pour tous les utilisateurs

Rétablir les utilisateurs sur le paramètre par défaut pour les empêcher de recevoir des e-mails pour chaque nouveau message.

UserOption.update_all(mailing_list_mode: false)

Définir le niveau d’e-mail sur uniquement lorsque absent pour tous les utilisateurs

Revenir aux paramètres par défaut pour empêcher les notifications par e-mail lorsque les utilisateurs sont activement présents sur le site.

UserOption.update_all(email_level: 1)

email_level peut avoir les valeurs suivantes :

  • 0 : toujours (envoyer des e-mails même lorsque l’utilisateur est actif)
  • 1 : uniquement lorsque absent (par défaut)
  • 2 : jamais

Activer le chat pour tous les membres du groupe bêta

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

Configuration des notifications par e-mail pour exclure les réponses précédentes

Définir la préférence pour exclure les réponses précédentes dans les notifications par e-mail.

UserOption.update_all(email_previous_replies: 0)

email_previous_replies peut avoir les valeurs suivantes :

  • 0 : toujours
  • 1 : sauf si précédemment notifié par e-mail
  • 2 : jamais

Pour plus d’informations, consultez controlling previous replies in emails.

Identification du nom d’un paramètre

Pour déterminer le nom du paramètre utilisateur et les options disponibles :

  • Utilisez le data explorer plugin pour inspecter la table user_options.
  • Recherchez dans le dépôt GitHub de Discourse.

Par exemple, pour ajuster le paramètre lié à « Lorsque je publie dans un sujet, définissez ce sujet sur », vous devez modifier l’option utilisateur notification_level_when_replying.

Vérifiez le relevant setting par rapport à watching.

Vous pouvez également configurer Docker pour exposer psql et utiliser PGadmin pour une gestion plus facile.

39 « J'aime »