Ich bin der Administrator eines Forums für eine Organisation mit mehreren Mitgliedschaftsstufen, die benutzerdefinierten Gruppenmitgliedschaften im Forum entsprechen. Derzeit erfordert dies für jedes neue Mitglied einen manuellen Prozess, bei dem ich die E-Mail-Adresse des neuen Mitglieds erhalte, prüfe, ob diese mit einem Benutzerkonto verknüpft ist, und sie dann zur benutzerdefinierten Gruppe hinzufüge.
Was ich mir wünsche, ist ein Skript, das eine Liste von E-Mail-Adressen entgegennimmt und, wenn ein Benutzer mit dieser Adresse existiert, ihn zur Gruppe hinzufügt und wenn nicht, eine Einladung mit bereits hinzugefügten Gruppenberechtigungen versendet. Wie würde ich ein solches Skript schreiben?
Danke!
EDIT:
Beispiel von unten:
Ich habe diese drei E-Mail-Adressen: alice@example.com - Gehört zu einem Forumsmitglied, das kein Gruppenmitglied von SomeGroup ist bob@foo.org - Gehört zu einem Forumsmitglied, das Mitglied von SomeGroup ist carol@bar.edu - Gehört zu keinem Forumsmitglied.
Ich möchte den Benutzer, der mit alice@example.com verbunden ist, zu SomeGroup hinzufügen (und eine Willkommensnachricht senden), nichts für den Benutzer bob@foo.org tun und eine Foreneinladung mit dem Gruppenmitgliedschaftsflag an carol@bar.edu senden.
Sie können die Gruppe so konfigurieren, dass Benutzer, die sich mit einer bestimmten E-Mail-Domäne (z. B. @example.com) anmelden, automatisch zu einer Gruppe hinzugefügt werden.
Gehen Sie zum Tab “Verwalten” der Gruppe, dann zu “Mitgliedschaft” und im ersten Abschnitt “Automatisch” fügen Sie die Domäne hinzu.
Danke, aber das hilft hier nicht wirklich weiter. Unsere Mitglieder nutzen alle ihre private E-Mail-Adresse dafür, sodass sie nicht dieselbe Domain haben.
Sie können einen Einladungslink einrichten und ihn an Kunden senden, aber dies funktioniert meiner Meinung nach nur, wenn sie sich noch nicht angemeldet haben.
Gehen Sie zum Tab „Mitglieder“, drücken Sie dann auf „Einladen“, konfigurieren Sie die Einladung und drücken Sie auf „Einladung speichern“.
Wenn du einen Einladungslink sendest, funktioniert dieser auch für bestehende Mitglieder. Du kannst sie sogar zu einem bestimmten Thema leiten, auf dem sie landen, wenn sie ankommen, sodass er sich gut für Gruppenanmeldungen oder Veranstaltungen eignet.
Wusste ich nicht. Ich werde im Wiki nachsehen und dort stand nur, dass es bei der Kontoerstellung geschieht. Können Sie das beheben, da es kein Wiki ist? (Invite users to a group)
Lassen Sie mich ein Beispiel geben, da meine Frage unklar gewesen sein muss.
Ich habe diese drei E-Mail-Adressen: alice@example.com – Gehört zu einem Forenmitglied, das kein Gruppenmitglied von SomeGroup ist bob@foo.org – Gehört zu einem Forenmitglied, das Mitglied von SomeGroup ist carol@bar.edu – Gehört zu keinem Forenmitglied.
Ich möchte, dass das Skript den Benutzer, der mit alice@example.com verknüpft ist, zu SomeGroup hinzufügt (und möglicherweise eine Willkommensnachricht sendet), für den Benutzer bob@foo.org nichts tut und carol@bar.edu eine Einladung mit dem Gruppenanmelde-Flag sendet.
Anstatt einer Liste von E-Mail-Adressen zu verwenden, wäre es wahrscheinlich sinnvoller, die API dafür zu nutzen. Wenn sich der Benutzer also anmeldet, sollten Sie ihn automatisch über diese API in die Gruppe aufnehmen: Discourse API Docs
Dies erfordert, dass der Benutzer zum Zeitpunkt der API-Nutzung auch bereits in Discourse angelegt ist. Dies erfordert möglicherweise etwas mehr Einrichtung, könnte den Ablauf aber vollständig automatisieren, sodass Sie keine manuellen Uploads von Benutzer-E-Mail-Adressen mehr durchführen müssen.
Die Sache ist, dass ich eigentlich eine Liste von E-Mail-Adressen habe und keine Benutzernamen. Meine Organisation verfolgt die Mitgliedsstufen der Personen anhand von Namen und E-Mails, nicht anhand von Foren-Benutzernamen, da das Forum nur ein kleiner Teil der Organisation ist. Der Mitgliedschaftskoordinator sendet mir jede Woche eine Liste mit Namen und E-Mails für neue Mitglieder. Sie haben möglicherweise bereits ein Forenkonto oder auch nicht, da wir einen öffentlichen Bereich im Forum haben.
Das scheint tatsächlich nicht zu funktionieren. Wenn ich versuche, einen Einladungslink zu senden, erhalte ich die Meldung: Es ist nicht nötig, example@gmail.com einzuladen, sie haben bereits ein Konto!
Ich habe mich vielleicht selbst verwirrt. Ich werde mich umsehen und prüfen, ob es eine Möglichkeit gibt, das zu erreichen, was Sie möchten, indem ich die vorhandenen Forenfunktionen nutze.
Bearbeiten:
Ich denke, das ist mit der Option „Massen-Einladung“ möglich. Wenn Sie eine CSV-Datei mit E-Mail-Adressen haben, mit einer zweiten Spalte für die Gruppe(n), zu der/denen Sie sie hinzufügen möchten, dann wird die Ausführung dieser Datei über das Massen-Einladungs-Tool jedem, der kein Konto hat, eine E-Mail-Einladung senden und bestehende Mitglieder zu der/den Gruppe(n) hinzufügen, die Sie in der zweiten Spalte eingegeben haben. Der fehlende Teil wäre jedoch, dass dies keine Benachrichtigung generiert, dass Sie zur Gruppe hinzugefügt wurden.
Massen-Einladungen sollten vorerst funktionieren, danke! Ich möchte eine Funktionsanfrage stellen, um bestehenden Mitgliedern eine Nachricht hinzuzufügen, wenn sie neue Berechtigungen erhalten.
Ich habe meine Verwirrung geklärt. Es sind die Links, die das tun, was ich dachte, nicht die E-Mails. Der andere Weg wäre also, einen Einladungslink (anstatt einer E-Mail) zu erstellen und diesen dann per E-Mail an alle Personen auf Ihrer E-Mail-Liste zu senden. Neue Mitglieder würden zur Seite „Konto erstellen und Einladung annehmen“ weitergeleitet, bevor sie zur Gruppe hinzugefügt und zum Thema gesendet werden (wenn Sie diese Kriterien hinzugefügt haben), bestehende Benutzer, die bereits angemeldet sind, würden zur Gruppe hinzugefügt und direkt zu dem von Ihnen angegebenen Thema gesendet, und bestehende Benutzer, die nicht angemeldet waren, können sich von der Seite „Konto erstellen und Einladung annehmen“ anmelden (obwohl es ein wenig unklar ist, ob Sie das tun können, könnten Sie jedoch zusätzlichen Text auf der Seite unter js.create_account.subheader_title hinzufügen, um einen kleinen Hinweis zu geben) und dann zur Gruppe hinzugefügt und zum Thema gesendet werden:
Dieser Weg sendet jedoch auch keine Benachrichtigung, dass sie zur Gruppe hinzugefügt wurden, aber Sie haben die Möglichkeit, in der anfänglichen Einladungs-E-Mail eine Erklärung einzufügen, was nützlich sein könnte? Und das „Thema erreichen“ könnte auf ähnliche Weise als Landingpage genutzt werden.
Ich bin mir nicht sicher, ob das hilfreich ist, aber ich bin froh, dass ich es herausgefunden habe.