Bedingte Zulassung neuer Benutzerregistrierungen

Hallo,
ich bin neu in der Discourse-Administration/-Entwicklung und spreche noch kein Ruby (aber ich bin absolut bereit, es zu lernen). Meine erste Aufgabe bestand darin, eine Discourse-Installation einzurichten, was ich mit dem offiziellen Docker-Image auf Digital Ocean erledigt habe. Bisher läuft alles gut – ein großes Lob an die Leute, die es so einfach gemacht haben!

Meine nächste Aufgabe ist für mich etwas herausfordernder. Ich habe mich freiwillig gemeldet, um dieses Discourse für eine gemeinnützige Organisation einzurichten, die die Benutzerregistrierung und -teilnahme auf Mitglieder dieser Organisation beschränken möchte. Daher muss ich den Prozess zur Erstellung neuer Benutzer auf irgendeine Weise modifizieren, an ihn anbinden (oder ersetzen?), um programmgesteuert zu prüfen, ob die eingereichte E-Mail-Adresse mit der eines aktuellen Mitglieds einer bestehenden Organisation übereinstimmt und ob das Ablaufdatum des Mitglieds in der Zukunft liegt.

Die Organisation nutzt NeonCRM und bietet eine API, die diese Überprüfung relativ einfach macht. Wie ich verstehe, stellt Discourse ebenfalls eine API bereit, mit der man alles tun kann, was man auch manuell tun kann. Es ist also mehr als nur theoretisch möglich, das zu tun, was ich möchte, oder? Die Frage ist, welcher Ansatz der beste ist.

Wenn Discourse es beispielsweise erlaubt, einen Event-Listener (oder ein Plugin?) zu schreiben, der die neue Benutzeranmeldung beobachtet, diese Verifizierungslogik durchführt und die Registrierung mit einer informativen Meldung abbrechen kann, die ich irgendwie anzeigen kann („Entschuldigung, Sie müssen Mitglied der XYZ-Vereinigung sein“) – das wäre großartig.

Alternativ könnte ich mir eine eigene Benutzerregistrierungsseite (in PHP, einer Sprache, die ich gut beherrsche) vorstellen, die beide APIs nutzt. In diesem Fall müsste ich jedoch meine Discourse-Installation so manipulieren, dass die Anmeldeseite den Benutzer zu meiner benutzerdefinierten Version weiterleitet.

Ich würde mich daher sehr über einige Vorschläge freuen, wie die übergeordnete Strategie aussehen sollte und wo ich anfangen sollte, mich einzuarbeiten, um dies umzusetzen.

Vielen Dank!

2 „Gefällt mir“

Du kannst Registrierungen nach E-Mail-Domain einschränken. Wenn alle deine Nutzer dieselbe Domain verwenden, kann niemand von außerhalb dieser Organisation beitreten. Suche in den Einstellungen nach „erlaubte E-Mail-Domains“.

Eine durch Pipe-Zeichen getrennte Liste von E-Mail-Domains, mit denen Benutzer Konten registrieren MÜSSEN. WARNUNG: Benutzer mit E-Mail-Domains, die nicht aufgeführt sind, dürfen sich nicht registrieren!

2 „Gefällt mir“

Ah, das könnte funktionieren, wenn die Menge der möglichen Domains auf eine vernünftige Größe beschränkt wäre, aber in diesem Fall sind die E-Mail-Adressen beliebig. Danke für den Vorschlag.

2 „Gefällt mir“

Hilft das?

@Jonathan5 danke für den Vorschlag. Ich habe mir den Thread angesehen, und ehrlich gesagt sieht das nach einem Albtraum aus. Darüber hinaus nutzen die Mitglieder dieser Vereinigung NeonCRM nicht direkt, um sich irgendwo einzuloggen; das tun nur die Vereinsmanager. Das ist kompliziert.

Ich hatte noch einen anderen Gedanken. Ich habe Discourse so konfiguriert, dass es nur auf Einladung zugänglich ist. Angenommen, ich ließe das so, würde aber den Text auf der Anmeldeseite ändern, sodass dort etwa steht: „Bitte gehen Sie zu my.example.org/discourse-invitation, um eine Einladung anzufordern.