Ce guide explique comment attribuer un badge non personnalisé via la console Discourse.
Niveau d’utilisateur requis : Administrateur système
Accès à la console requis
Dans certains scénarios, vous pourriez avoir besoin d’attribuer manuellement un badge par défaut de Discourse à un utilisateur depuis la console. Par exemple, un utilisateur pourrait ne pas recevoir le badge « Enthusiast » (Passionné) après avoir visité un forum pendant 10 jours consécutifs, possiblement en raison d’un décalage horaire entre l’heure locale de l’utilisateur et l’heure UTC du serveur.
Cette documentation fournit un guide étape par étape pour attribuer manuellement des badges non personnalisés en utilisant la console Rails, en veillant à ce que ces badges ne soient pas automatiquement révoqués.
Vérification des badges révocables automatiquement
Avant d’attribuer un badge, assurez-vous qu’il ne sera pas automatiquement révoqué par le système. Exécutez la commande suivante dans la console Rails pour obtenir la liste de ces badges :
Badge.where(auto_revoke: false).pluck(:name)
Cette commande affichera une liste de badges non révocables automatiquement, notamment :
- « First Flag » (Premier drapeau)
- « Thank You » (Merci)
- « Gives Back » (Donne en retour)
- « Empathetic » (Empathique)
- « Out of Love » (Par amour)
- « Higher Love » (Amour supérieur)
- « Crazy in Love » (Fou amoureux)
- « Aficionado » (Aficionado)
- « Devotee » (Dévot)
- « Enthusiast » (Passionné)
- « Reader » (Lecteur)
- « Anniversary » (Anniversaire)
- « Appreciated » (Apprécié)
- « Respected » (Respecté)
- « Admired » (Admiré)
Attribution d’un badge
Pour attribuer un badge de cette liste, suivez ces étapes :
-
Trouver l’utilisateur par son nom d’utilisateur :
Exécutez la commande suivante, en remplaçant
enthusiastic_userpar le vrai nom d’utilisateur :user = User.find_by(username: 'enthusiastic_user') -
Localiser le badge par son nom :
Par exemple, pour trouver le badge « Enthusiast », utilisez :
badge = Badge.find_by(name: "Enthusiast") -
Attribuer le badge à l’utilisateur :
Enfin, attribuez le badge à l’utilisateur avec cette commande :
BadgeGranter.grant(badge, user)