Discourse-Communities müssen oft die Gruppenzugehörigkeit basierend auf Bedingungen wie dem Besitz von Abzeichen oder bestehenden Gruppenzugehörigkeiten automatisieren.
Häufige Anwendungsfälle sind:
Benutzer, die nicht in der Gruppe „Abonnenten“ sind
Benutzer, die nicht vom Posten in Marketplace gesperrt sind
Benutzer auf TL0 oder TL1, aber nicht auf TL2
Benutzer, die den neuen Benutzer-Tutorial abgeschlossen haben oder seit über einem Jahr Mitglied sind
Benutzer, die zu client_1, client_2 oder client_3 gehören und keine Praktikanten sind
Zuvor erforderte die Lösung dieses Problems benutzerdefinierte Skripte, die Gruppen periodisch synchronisierten. Das Dynamic Groups-Plugin macht diesen Aufwand überflüssig.
Dieses Plugin führt ein boolesches Ausdrucksfeld in den Gruppeneinstellungen ein, das es Administratoren ermöglicht, Regeln zu definieren, die die Gruppenzugehörigkeit dynamisch bestimmen.
Beispiele:
Benutzer, die nicht in der Gruppe „Abonnenten“ sind trust_level_0 AND NOT subscribers
Benutzer, die nicht vom Posten in Marketplace gesperrt sind trust_level_2 AND NOT banned_users
Benutzer, die auf TL0 oder TL1 sind, aber nicht auf TL2 trust_level_0 AND NOT trust_level_2
Benutzer, die das neue Benutzer-Tutorial abgeschlossen haben oder seit über einem Jahr Mitglied sind badge:certified OR badge:anniversary
Benutzer, die zu Client 1, 2 oder 3 gehören und keine Praktikanten sind (client_1 OR client_2 OR client_3) AND NOT interns
Konfiguration
Nachdem das Plugin installiert und aktiviert wurde, erscheint im Gruppenadministrationsbereich ein neuer Tab:
Wenn Sie den booleschen Ausdruck eingeben oder aktualisieren, dauert es einige Momente, bis das System die Gruppe mit den übereinstimmenden Benutzern gefüllt hat. Von diesem Zeitpunkt an wird die Gruppenzugehörigkeit automatisch aktualisiert, wenn sich der Benutzerstatus ändert.
Wichtig:
Wenn eine Regel definiert ist, wird die Gruppe als automatisch markiert, wodurch manuelle Mitgliederänderungen deaktiviert werden. Um die Gruppe wieder auf manuelle Verwaltung umzustellen, löschen Sie einfach das Ausdrucksfeld. Die vorhandenen Mitglieder bleiben erhalten und Sie erhalten die manuelle Kontrolle zurück.
Hallo, vielen Dank für die Entwicklung dieses super nützlichen Plugins!
Ich verwende derzeit Discourse Dynamic Groups, um automatisch alle nicht-anonymen Benutzer zu einer speziellen Gruppe hinzuzufügen. Mein Boolescher Ausdruck ist:
NICHT anonymous_users
Erwartetes Verhalten:
Wenn sich ein neuer Benutzer registriert (der nicht zur Gruppe anonymous_users gehört), sollte er automatisch dieser Gruppe hinzugefügt werden, ohne manuellen Eingriff.
Tatsächliches Verhalten:
Neu registrierte Benutzer werden nicht sofort der Gruppe hinzugefügt. Sie werden erst hinzugefügt, nachdem ich den Booleschen Ausdruck in den Gruppeneinstellungen manuell neu gespeichert habe.
Dies bedeutet, dass die Gruppe nicht automatisch aktualisiert wird, wenn Benutzer beitreten, es sei denn, ich löse eine manuelle Synchronisierung aus.
zu verwenden, erhalte ich die Fehlermeldung: Unbekanntes Schlüsselwort, Gruppe oder Badge: 'anonymous_users'
Wenn ich den Gruppennamen in meine tatsächliche Gruppe ändere, zum Beispiel:
trust_level_0 AND NOT interns
erhalte ich immer noch: Unbekanntes Schlüsselwort, Gruppe oder Badge: 'interns'
Ich habe mehrfach überprüft und kopiere den eindeutigen Namen der Gruppe direkt von der Gruppenadministrationsseite, es gibt also keine Tippfehler.
Übersehe ich möglicherweise etwas, oder muss ich etwas anderes konfigurieren, damit benutzerdefinierte Gruppen im Ausdruck erkannt werden?
Beim Versuch, das Problem zu reproduzieren, habe ich zwei Fehler identifiziert, von denen einer Sie wahrscheinlich getroffen hat.
Können Sie bitte das Plugin auf die neueste Version 59640f1 aktualisieren und prüfen, ob das Problem dadurch behoben wird.
Das Plugin geht immer noch nicht sehr gut mit dem Umbenennen von Gruppen um. Wenn Sie eine Gruppe umbenennen, sollten Sie die Regeln aus allen Gruppen speichern, die von ihr abhängen (geben Sie einfach ein Leerzeichen nach dem booleschen Ausdruck ein und entfernen Sie es wieder, um die Schaltfläche “Speichern” zu aktivieren). Dies wird in einer späteren Version behoben.
ich benutze das Dynamic Groups Plugin und habe meine Kriterien wie folgt festgelegt:
trust_level_0 AND NOT anon_group
Mir ist jedoch aufgefallen, dass Benutzer mit trust_level_1, die nicht in der anon_group sind, ebenfalls zu dieser dynamischen Gruppe hinzugefügt werden.
Könnten Sie bitte bestätigen, ob dies das erwartete Verhalten ist oder ob es sich um einen Fehler handelt?
Benutzer mit Vertrauensstufe 1 sind auch Mitglieder der Gruppe mit Vertrauensstufe 0. Das Verhalten ist also zu erwarten. Sie könnten die Gruppe mit Vertrauensstufe 1 ausschließen, um nur TL0-Benutzer zu erhalten. Ähnlich wie im Beispiel aus dem ersten Beitrag