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.

27 « 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.

4 « J'aime »

Absolument un ajout bienvenu aux fonctionnalités de Discourse !

2 « 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

J’adore absolument ce plugin : il est extrêmement utile pour plusieurs cas d’usage. Bravo encore à l’équipe Communiteq pour le partage et la maintenance !

Question d’UX - Ne serait-il pas préférable de masquer les champs clés plutôt que l’onglet Membreship entier ?

Je remarque qu’il masque l’onglet Membreship des pages de groupe. Je veux dire celui-ci :

Bien que je comprenne la raison, cela pose certains problèmes lorsque vous souhaitez modifier le titre par défaut, le style ou l’effet.

On peut contourner ce problème en soit en réaffichant l’onglet via la console du navigateur, soit en supprimant l’expression dans l’onglet Groupes dynamiques, en actualisant, en apportant les modifications, en la réinsérant, puis en actualisant à nouveau.

Mais je me demande s’il ne serait pas préférable de simplement masquer les champs qui ne sont pas utiles, plutôt que l’onglet entier. Quelque chose de plus proche de ceci :

Je suis d’accord avec votre suggestion, mais…

Il s’agit d’une fonctionnalité essentielle.
Un groupe dynamique est marqué comme « automatique » et l’onglet Membres disparaît alors.

Cela ne fonctionnera pas, car le cœur de Discourse n’affichera tout simplement pas l’onglet. Il n’est pas masqué, il est tout bonnement absent.

1 « J'aime »

Oui, j’ai trouvé ça entre mon message et ta réponse !! Je n’avais pas réalisé que tu t’intègres ainsi aux fonctionnalités principales — c’est même très bien fait.

J’ai barré ma suggestion incorrecte.

Je suppose que l’autre solution de contournement que j’ai mentionnée convient alors.

1 « J'aime »

Je ne m’en étais pas rendu compte non plus !

Nous allons procéder à une maintenance de tous les plugins dans le mois à venir. Peut-être devrons-nous revoir le paramètre « automatique », car, si ma mémoire est bonne, il servait simplement à désactiver rapidement les fonctionnalités d’ajout/suppression de membres. Tout le reste est probablement des effets secondaires indésirables.

2 « J'aime »