Ce guide explique comment modifier une préférence utilisateur pour tous les utilisateurs ou un sous-ensemble d’utilisateurs 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 grand sous-ensemble d’utilisateurs, 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
- Des 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
Voici des exemples de commandes pour mettre à jour diverses préférences utilisateur :
Définir la dernière date de connexion pour les utilisateurs inactifs
Définir la dernière date de connexion 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
Revenir au paramètre par défaut pour empêcher les utilisateurs de recevoir des e-mails pour chaque nouvelle publication.
UserOption.update_all(mailing_list_mode: false)
Définir le niveau d’e-mail sur “uniquement en absence” pour tous les utilisateurs
Revenir aux paramètres par défaut pour empêcher les notifications par e-mail lorsque les utilisateurs sont actifs sur le site.
UserOption.update_all(email_level: 1)
Où email_level peut avoir les valeurs :
- 0 : toujours (envoyer des e-mails même lorsque l’utilisateur est actif)
- 1 : uniquement en absence (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
Configurer les 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 :
- 0 : toujours
- 1 : sauf si déjà envoyé par e-mail
- 2 : jamais
Pour plus d’informations, consultez contrôle des réponses précédentes dans les e-mails.
Identification du nom d’un paramètre
Pour déterminer le nom du paramètre utilisateur et les options disponibles :
- Utilisez le plugin Data Explorer 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éfinir ce sujet sur”, vous devez modifier l’option utilisateur notification_level_when_replying.
Consultez le paramètre pertinent pour surveillance.
Vous pouvez également configurer Docker pour exposer psql et utiliser PGadmin pour une gestion plus facile.