Benutzer in mehreren Gruppen mit UND statt ODER identifizieren?

Das Erstellen einer neuen Gruppe, die die Benutzer der Zielgruppe mit Vertrauensstufe 3 enthält, ist der einzige Weg, den ich mir vorstellen kann, um dies zu erreichen. Discourse hat keine UND-Regel, die bei den Sicherheitseinstellungen für Kategorien verwendet werden kann. Eine ähnliche Frage ist ein paar Mal aufgetaucht, wie man eine Kategorienregel erstellt, die Mitglieder einer oder mehrerer Gruppen ausschließt.

Wenn das Data Explorer-Plugin auf Ihrer Website verfügbar ist, könnten Sie eine Data Explorer-Abfrage verwenden, die eine Liste aller Benutzer der Zielgruppe mit Vertrauensstufe 3 zurückgibt. Wenn Sie nicht mit einer riesigen Anzahl von Benutzern zu tun haben, sollten Sie in der Lage sein, die Benutzernamen, die von der Abfrage zurückgegeben werden, direkt in das Formular „Benutzer hinzufügen“ einer Gruppe zu kopieren und einzufügen. Discourse scheint das Hinzufügen von Benutzernamen, die bereits in einer Gruppe vorhanden sind, in dieses Formular zu handhaben. Wenn Sie die Abfrage also regelmäßig ausführen, sollten Sie die zurückgegebenen Benutzernamen einfach immer wieder in das Formular „Benutzer hinzufügen“ der Gruppe kopieren können. Beachten Sie, dass ich mir nicht sicher bin, wie viele Benutzernamen maximal in das Formular eingefügt werden können. Ich habe es gerade mit 80 Benutzern getestet und das funktioniert ohne Probleme. Wenn Sie versuchen, eine exakte Duplikatliste von Benutzern in das Formular „Benutzer hinzufügen“ einzufügen, gibt Discourse anscheinend einen Fehler zurück. Der Fehler kann jedoch ignoriert werden.

Hier ist die Abfrage, die ich damit getestet habe. Sie müssen den Gruppennamen angeben, zum Beispiel „year_2“, bevor Sie die Abfrage ausführen.

--[params]
-- string :group_name

SELECT u.username
FROM group_users gu
JOIN groups g ON g.id = gu.group_id
JOIN users u ON u.id = gu.user_id
WHERE g.name = :group_name
AND u.trust_level = 3

Es wäre möglich, den obigen Prozess zu automatisieren, indem die Data Explorer-Abfrage über die API ausgeführt wird und dann die Ergebnisse der API-Anfrage verwendet werden, um die Gruppe zu aktualisieren. Details dazu finden Sie hier: Data Explorer-Abfragen mit der Discourse-API ausführen. Sie müssten dann die Gruppenmitglieder über die API aktualisieren.

Es wäre interessant, einige Arten von Aktionen direkt auf die Ergebnisse einer Data Explorer-Abfrage anwenden zu können. Zum Beispiel mit einer Abfrage, die eine Liste von Benutzernamen zurückgibt, alle Benutzer zu einer Gruppe hinzuzufügen, ohne den Kopier- und Einfügeschritt durchlaufen zu müssen.

4 „Gefällt mir“