Vorhandene Benutzer zu einer Gruppe hinzufügen (und neue einladen)

Ich habe einen spezifischen Anwendungsfall und möchte wissen, ob es eine einfachere Möglichkeit gibt, dies umzusetzen.

  • Nicht alle unsere Benutzer (über unser SSO) haben aktive Forenkonten.
  • Wir müssen regelmäßig Benutzer zu einer Forengruppe hinzufügen, um Zugang zu einem privaten Forum zu erhalten.
  • Ob Benutzer aktive Forenkonten haben, ist vor dem Versuch, sie zur Gruppe hinzuzufügen, nicht bekannt.

Beispiel:
Jeden Monat hat ein Mitarbeiter eine Liste mit über 100 Konten, die Zugang zum privaten Forum erhalten. Diese Konten haben SSO-Benutzernamen und E-Mail-Adressen, haben aber möglicherweise noch kein Forenkonto.

:question: Gibt es eine einfache Möglichkeit, Personen zur Gruppe hinzuzufügen, wenn sie bereits Forenkonten haben, und sie ins Forum einzuladen (wodurch sie automatisch zur Gruppe hinzugefügt werden), wenn sie keine haben?

Auf der Seite „Gruppen“ ermöglicht die Schaltfläche Mitglieder hinzufügen, eine durch Kommas getrennte Liste von Benutzernamen einzufügen. Wenn diese gültige Benutzernamen sind, werden sie zur Gruppe hinzugefügt. Wenn ein Benutzername ungültig ist (d. h. noch kein Forenkonto existiert), schlägt dies fehl und sie werden nicht hinzugefügt.

Abgesehen davon, dass man manuell die Liste der erfolgreich zur Gruppe hinzugefügten Benutzer durchgeht, identifiziert, welche Benutzernamen nicht hinzugefügt wurden, und dann diesen Personen eine Forumseinladung sendet (z. B. (Superseded) Multiple Use Invite Links) – gibt es eine einfache Möglichkeit, Einladungen und das Hinzufügen zur Gruppe für eine Mischung aus aktuellen und potenziellen Forennutzern zu kombinieren?

Idealerweise würde ich gerne eine einstufige Lösung dafür finden.

Eine mögliche (aber immer noch sehr umständliche!) mehrstufige Workaround-Lösung könnte wie folgt aussehen:

  1. Liste der Namen in eine Data Explorer-Abfrage eingeben, die Listen mit aktiven und inaktiven Benutzernamen zurückgibt
  2. „Zur Gruppe hinzufügen

Sie können den Data Explorer nicht verwenden. Es handelt sich um ein schreibgeschütztes Tool.

Etwas Ähnliches müsste neu erstellt werden.

Haben Sie sich bereits damit beschäftigt, Nutzer über die SSO-Parameter add_groups und remove_groups zu Discourse-Gruppen hinzuzufügen? Für Nutzer, die auf Ihrer SSO-Provider-Seite existieren, können Sie Discourse-Konten für sie erstellen und sie durch einen API-Aufruf an die Route sync_sso zu Discourse-Gruppen hinzufügen. Einige Details zur Einrichtung finden Sie hier: SSO-Nutzerdaten mit der Route sync_sso synchronisieren. Falls dieser Ansatz für Sie in Frage kommt, können wir Ihnen gerne weitere Details zur Einrichtung geben.

1 „Gefällt mir“

Danke, Simon – das sieht vielversprechend aus.

Alle unsere Benutzer existieren auf der SSO-Seite (sie sind Verkäufer in unseren Marktplätzen), aber nur eine Teilmenge davon erstellt derzeit Discourse-Konten, um unsere Foren zu nutzen. Diese SSO deckt sowohl Kunden als auch Verkäufer ab: Wir möchten nicht automatisch Discourse-Konten für alle Kunden erstellen (es gibt viel zu viele!), aber dies für alle Verkäufer zu tun, würde die Sache drastisch vereinfachen.

In diesem Fall müssen wir den Zugriff auf private Forum-Gruppen nur bestimmten Verkäufern gewähren, wenn sie mit der Nutzung spezifischer Marktplätze oder Dienste beginnen.

Beispiel: Ein Verkäufer auf Marktplatz 1 hat ein SSO-Konto. Möglicherweise erstellt er in diesem Stadium ein Discourse-Konto, indem er sich in das Forum einloggt.

Später erhält dieser Verkäufer Zugriff auf Marktplatz 2, und sein SSO-Konto verzeichnet diese Änderung. Wir haben eine benutzerdefinierte Benutzergruppe (und eine private Forum-Kategorie) für diesen Marktplatz.

  • Wenn er zu diesem Zeitpunkt bereits ein Discourse-Konto hat, müssen wir seine Gruppen aktualisieren, damit er den privaten Forum-Bereich sehen kann.
  • Wenn er noch kein Discourse-Konto hat, möchten wir eines für ihn mit den entsprechenden Gruppen erstellen.

Das Team verwendet derzeit „zur Gruppe hinzufügen“ mit einer durch Kommas getrennten Liste von Benutzernamen. Wenn Benutzer bereits ein Discourse-Konto haben, erhalten sie Zugriff auf die Gruppe… wenn sie noch nicht im Forum sind, passiert nichts.

Um Benutzer zu erfassen, die seit dem letzten Mal, als eine Batch zu der Gruppe hinzugefügt wurde, ihre Discourse-Konten erstellt haben, fügt das Team normalerweise alle qualifizierenden Benutzernamen der letzten X Monate hinzu, wenn versucht wird, die Gruppenmitgliedschaft zu aktualisieren. Dies ist ein recht umständlicher Prozess.

Wenn Sie einen API-Aufruf an die Route sync_sso senden, der den SSO-Parameter add_groups enthält, werden bestehende Benutzer zur Gruppe hinzugefügt. Hat der Benutzer noch kein Discourse-Konto, wird ein Konto für ihn erstellt und er wird der Gruppe hinzugefügt. Sie können den SSO-Parameter remove_groups auf ähnliche Weise verwenden, um Benutzer aus Gruppen zu entfernen. Ein weiterer Vorteil der Nutzung der Route sync_sso für diesen Zweck ist, dass der Benutzer sich nicht ab- und wieder bei Discourse anmelden muss, damit die Änderung wirksam wird.

Falls es für Ihr Team hilfreich wäre, ein Beispiel für PHP/WordPress-Code zu sehen, finden Sie die Implementierung hier: https://github.com/discourse/wp-discourse/blob/master/lib/utilities.php#L378. Die verlinkte Datei enthält einige Hilfsfunktionen, die Websites nutzen können, um das WP Discourse-Plugin zu erweitern. Daher werden dort statische Funktionen verwendet.

4 „Gefällt mir“

Danke, Simon! Das klingt ideal – viel besser als unsere aktuelle Methode :slight_smile:

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.