Bonjour. J’ai une catégorie Acheter/Vendre/Échanger sur mon site que j’aimerais restreindre aux publications tant qu’un membre n’a pas “aimé” le sujet des règles. J’ai demandé au Bot IA, et il m’a donné quelques instructions. Cependant, il semble que cela nécessite l’Automatisation Discourse qui n’est disponible que sur les plans hébergés.
Y a-t-il un moyen de faire cela sur ma plateforme auto-hébergée ?
Hmm, peut-être avec Discourse Policy et les permissions de groupe ?
add-users-to-group : accepte un seul groupe en entrée ; les utilisateurs qui acceptent la politique seront automatiquement ajoutés à ce groupe (lorsque la politique est révoquée manuellement ou si la version de la politique est mise à jour, l’utilisateur ou les utilisateurs sont retirés du groupe)
J’ai dû activer le SQL des badges, puis créer un badge qui est attribué lorsqu’un utilisateur aime la publication spécifique. J’ai ensuite créé un groupe que l’Automatisation Discord attribue automatiquement en fonction du fait qu’un utilisateur possède le badge. J’ai donné au groupe « tout le monde » un accès en lecture seule à la catégorie afin qu’ils ne puissent que réagir. J’ai donné au groupe personnalisé un accès complet.
Je vais faire une petite note sur exactement ce que j’ai fait quand je rentrerai, juste au cas où quelqu’un d’autre voudrait le savoir. Ensuite, je marquerai cela comme la solution.
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 = 117 pour 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
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.
Merci pour ce plugin ! Je cherchais un moyen de fournir un système de billetterie de base dans notre communauté.
J’envisage également de l’utiliser dans ma catégorie Acheter/Vendre/Échanger. Actuellement, j’ai configuré les choses de manière à ce que tout le monde puisse lire les sujets, mais seules les personnes d’un groupe spécifique peuvent répondre et créer. Le flux de travail actuel est le suivant : le membre reconnaît qu’il a lu les règles en aimant la publication. Une fois qu’il aime la publication, il reçoit un badge personnalisé. Discourse Automate l’ajoute au groupe en fonction du badge.
Cela empêche les personnes qui n’ont pas accepté les règles de publier dans la catégorie. Cependant, elles peuvent toujours voir/lire toutes les publications.
Alors, cela fonctionnerait-il si je retirais tout le monde de la catégorie et ne gardais que ce groupe personnalisé dans l’onglet sécurité ? Tant que j’ai des publications du groupe Admin toujours visibles, les personnes qui ne font pas partie du groupe personnalisé pourraient-elles toujours voir et aimer les règles ? Ensuite, une fois qu’ils aiment et sont ajoutés au groupe, tout s’ouvre pour eux ?
Votre cas d’utilisation peut être implémenté sans ce plugin, en utilisant plutôt le plugin Discourse Policy, qui a la capacité d’ajouter les utilisateurs qui ont accepté la politique à un groupe.
J’ai examiné le plugin Policy avant de m’engager dans la manière dont j’ai fini par attribuer l’appartenance au groupe. La raison pour laquelle je n’aime pas la politique pour cela est qu’elle doit être appliquée à un groupe. Je devrais l’appliquer à quelque chose comme trust_level_1 pour m’assurer que tous ceux qui veulent faire partie de B/S/T la voient. Mais, tout le monde ne veut pas participer à B/S/T. Je ne veux pas les harceler avec une autre chose à cliquer (même si c’est rapide) s’ils n’y sont pas intéressés.
créer un groupe « Candidats BST » et un groupe « Membres BST »
faire de « Candidats BST » un groupe auquel on peut adhérer librement
avoir une politique qui s’applique aux « Candidats BST » et qui ajoute aux « Membres BST »
accorder l’accès à la catégorie aux « Membres BST »
Les gens rejoindront « Candidats BST », accepteront la politique et deviendront membres de « Membres BST ». Pénible mais moins pénible que de déclencher une machine de Rube Goldberg complète en aimant une publication.
1 « J'aime »
RGJ
(Richard - Communiteq)
A scindé ce sujet ()
14