Ce guide explique comment modifier une préférence utilisateur pour tous les utilisateurs ou un sous-ensemble d’entre eux dans Discourse.
Niveau d’utilisateur requis : Administrateur système
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)
Où 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)
Où 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.