Groupes dynamiques Discourse

:information_source: Résumé Gérez automatiquement l’appartenance aux groupes
:hammer_and_wrench: Lien du dépôt \u003chttps://github.com/communiteq/discourse-dynamic-groups\u003e
:open_book: Guide d’installation Comment installer des plugins dans Discourse

:warning: Ce plugin doit être considéré comme une bêta :warning:

Fonctionnalités

Les communautés Discourse ont souvent besoin d’automatiser l’appartenance aux groupes en fonction de conditions telles que la possession d’un badge ou l’appartenance à des groupes existants.

Les cas d’utilisation courants incluent :

  • Utilisateurs n’appartenant pas au groupe « abonnés »

  • Utilisateurs n’étant pas bannis de la publication dans Marketplace

  • Utilisateurs au niveau de confiance 0 ou 1, mais pas au niveau de confiance 2

  • Utilisateurs ayant terminé le tutoriel des nouveaux utilisateurs ou étant membres depuis plus d’un an

  • Utilisateurs appartenant à client_1, client_2 ou client_3 et n’étant pas stagiaires

Auparavant, la résolution de ce problème nécessitait des scripts personnalisés qui synchronisaient périodiquement les groupes. Le plugin Dynamic Groups élimine ce besoin.

Ce plugin introduit un champ d’expression booléenne dans les paramètres du groupe, permettant aux administrateurs de définir des règles qui déterminent dynamiquement l’appartenance aux groupes.

Exemples :

  • utilisateurs qui n’appartiennent pas au groupe « abonnés »
    trust_level_0 AND NOT subscribers

  • utilisateurs qui ne sont pas bannis de la publication dans Marketplace
    trust_level_2 AND NOT banned_users

  • utilisateurs qui sont au niveau de confiance 0 ou 1 mais pas au niveau de confiance 2
    trust_level_0 AND NOT trust_level_2

  • utilisateurs qui ont terminé le tutoriel des nouveaux utilisateurs ou sont membres depuis plus d’un an
    badge:certified OR badge:anniversary

  • utilisateurs qui appartiennent aux clients 1, 2 ou 3 et ne sont pas stagiaires
    (client_1 OR client_2 OR client_3) AND NOT interns

Configuration

Une fois le plugin installé et activé, un nouvel onglet apparaîtra dans l’interface d’administration des groupes :

Lorsque vous entrez ou mettez à jour l’expression booléenne, le système prendra quelques instants pour remplir le groupe avec les utilisateurs correspondants. À partir de ce moment, l’appartenance au groupe sera automatiquement mise à jour à mesure que le statut des utilisateurs change.

Important :
Lorsqu’une règle est définie, le groupe est marqué comme automatique, désactivant les modifications manuelles des membres. Pour revenir à la gestion manuelle du groupe, il suffit de vider le champ d’expression. Les membres existants resteront, et vous retrouverez le contrôle manuel.

24 « J'aime »

Bravo ! Excellent travail, Richard !

Cela comble une lacune importante dans la gestion de groupe au sein de Discourse. Totalement ravi, et j’ai hâte de l’essayer sérieusement.

Je l’utiliserai principalement pour activer des sous-groupes fonctionnels.

3 « J'aime »

Absolument un ajout bienvenu aux fonctionnalités de Discourse !

1 « J'aime »

7 publications ont été fusionnées dans un sujet existant : Seule la première entrée fonctionne avec des champs Multiselect lorsque le Trigger Utilisateur connecté pour la première fois utilisé

Bonjour, merci d’avoir développé ce plugin super utile !

J’utilise actuellement Discourse Dynamic Groups pour ajouter automatiquement tous les utilisateurs non anonymes à un groupe spécial. Mon expression booléenne est :

NOT anonymous_users
Comportement attendu :
Lorsqu’un nouvel utilisateur s’inscrit (et n’appartient pas au groupe anonymous_users), il devrait être automatiquement ajouté à ce groupe, sans aucune intervention manuelle.

Comportement actuel :
Les nouveaux utilisateurs inscrits ne sont pas immédiatement ajoutés au groupe. Ils ne sont ajoutés qu’après que j’ai manuellement réenregistré l’expression booléenne dans les paramètres du groupe.
Cela signifie que le groupe n’est pas mis à jour automatiquement lorsque des utilisateurs le rejoignent, sauf si je déclenche une synchronisation manuelle.

1 « J'aime »

Hmm… bonne remarque. Et je suis d’accord que ce devrait être le comportement attendu.

D’un point de vue technique, le plugin ne réévaluera l’appartenance au groupe que dans deux conditions différentes :

  1. Lorsque l’expression booléenne dans les paramètres du groupe est enregistrée.
  2. Si un utilisateur est ajouté ou supprimé d’un groupe mentionné dans l’expression booléenne.

Lorsqu’un nouvel utilisateur s’inscrit, ce n’est le cas ni l’un ni l’autre.

Pouvez-vous essayer de modifier l’expression en trust_level_0 AND NOT anonymous_users et indiquer si cela résout le problème ?

3 « J'aime »

Bonjour,

Lorsque j’essaie d’utiliser l’expression

trust_level_0 AND NOT anonymous_users

Je reçois l’erreur :
Unknown keyword, group or badge: 'anonymous_users'

Si je change le nom du groupe avec mon groupe actuel, par exemple :

trust_level_0 AND NOT interns

Je reçois toujours :
Unknown keyword, group or badge: 'interns'

J’ai vérifié et je copie le nom unique du groupe directement depuis la page d’administration du groupe, donc il n’y a pas de fautes de frappe.
Y a-t-il quelque chose que je pourrais manquer, ou y a-t-il autre chose que je dois configurer pour que les groupes personnalisés soient reconnus dans l’expression ?

4 « J'aime »

Merci d’avoir signalé ceci.

En essayant de reproduire, j’ai identifié deux bugs et l’un d’eux vous a probablement touché. Veuillez mettre à jour le plugin vers la dernière version 59640f1 et voir si cela résout le problème.

Le plugin ne gère toujours pas très bien le renommage des groupes. Si vous renommez un groupe, vous devez enregistrer les règles de tous les groupes qui en dépendent (entrez simplement un espace après l’expression booléenne et supprimez-le à nouveau pour activer le bouton Enregistrer). Ceci sera corrigé dans une version ultérieure.

3 « J'aime »

Est-ce que cela utilise votre plugin de restriction de catégorie ou fonctionne-t-il indépendamment de celui-ci ?

excellent plugin pour combler les lacunes.

Cela fonctionne indépendamment.

1 « J'aime »

Salut,

J’utilise le plugin Dynamic Groups et j’ai défini mes critères comme suit :

trust_level_0 AND NOT anon_group

Cependant, j’ai remarqué que les utilisateurs avec trust_level_1 qui ne sont pas dans le anon_group sont également ajoutés à ce groupe dynamique.

Pourriez-vous confirmer s’il s’agit du comportement attendu, ou s’il s’agit d’un bug ?

Les utilisateurs ayant le niveau de confiance 1 sont également membres du groupe de niveau de confiance 0. Le comportement est donc attendu. Vous pourriez exclure le groupe de niveau de confiance 1 pour n’obtenir que les utilisateurs TL0. Similaire à l’exemple du premier message

2 « J'aime »

Merci pour la clarification