Juste au cas où quelqu’un d’autre serait intéressé par la manière de procéder, voici un bref compte rendu de ce que j’ai fait :
- Tout d’abord, vous devez activer Badge SQL via l’interface de ligne de commande (CLI) de votre serveur Discourse :
./launcher enter app
rails c
SiteSetting.enable_badge_sql = true
- Ensuite, trouvez l’ID du sujet avec lequel les membres doivent interagir pour obtenir le badge. Dans mon cas, l’ID du sujet est 117
- Ensuite, trouvez l’ID du sujet avec lequel les membres doivent interagir pour obtenir le badge. Dans mon cas, l’ID du sujet est 117
![]()
- Créez votre badge personnalisé :
- Admin > Badges > Nouveau
- Nommez le badge comme vous le souhaitez (par exemple, Lecteur des règles B/S/T)
- Choisissez un type de badge, une icône et donnez-lui une description
- Si vous avez suivi l’étape 1, vous verrez une boîte de requête où vous pourrez taper une requête SQL. Collez cette requête (changez
p.topic_id = 117pour l’ID de votre sujet) :-
SELECT DISTINCT ON (pa.user_id) pa.user_id, pa.post_id, pa.created_at granted_at FROM post_actions pa JOIN posts p ON pa.post_id = p.id AND p.post_number = 1 WHERE pa.post_action_type_id = 2 AND p.topic_id = 117 AND (:backfill OR pa.post_id IN (:post_ids))
-
- Assurez-vous que Exécuter la requête de révocation quotidiennement (Run revocation query daily) et La requête cible des publications (Query targets posts) sont tous deux cochés.
- Le déclencheur doit être défini sur Lorsqu’un utilisateur agit sur une publication (When a user acts on post)
- Maintenant, nous créons l’automatisation
- Créez d’abord un nouveau groupe pour que les membres y soient ajoutés. Le mien est simplement nommé
bst_rules_agreed, et il est configuré pour que seuls les propriétaires de groupe et les modérateurs puissent voir l’adhésion. Il n’a pas besoin d’avoir d’effets de niveau de confiance. - Ensuite, allez dans Plugins > Automatisation
- Ajoutez une nouvelle automatisation
- Choisissez Adhésion à un groupe d’utilisateurs via un badge (User Group Membership Through Badge)
- Déclencheur : Récurent (Recurring)
- Récurence : J’ai le mien réglé sur toutes les 1 heure. Choisissez ce qui vous convient.
- Choisissez une date de début
- Options de script :
- Badge : Choisissez le badge que vous avez créé ci-dessus
- Groupe : Choisissez le groupe que vous avez créé ci-dessus
- Ajoutez une nouvelle automatisation
- Créez d’abord un nouveau groupe pour que les membres y soient ajoutés. Le mien est simplement nommé
C’est tout. Vous devriez maintenant avoir un système qui garantit que les membres ont accepté les règles de la catégorie avant de pouvoir publier dans cette catégorie.
Ma prochaine exploration est de voir s’il existe un moyen de masquer tous les sujets, à l’exception des règles, à toute personne qui n’est pas dans ce groupe. Mais, ce système de base est suffisant pour l’instant.