Discourse Mitgliedsantrag

:information_source: Zusammenfassung Discourse Member Application ermöglicht es Ihnen, einen strukturierten Bewerbungsprozess für potenzielle Mitglieder durchzuführen, bevor diese Ihrer Discourse-Community beitreten.
:hammer_and_wrench: Repository-Link GitHub - R23DPrinting/discourse-member-application · GitHub
:open_book: Installationsanleitung So installieren Sie Plugins in Discourse

discourse-member-application — Ein Vor-Einladungs-Bewerbungssystem für private Communities

discourse-member-application ermöglicht es Ihnen, einen strukturierten Bewerbungsprozess für potenzielle Mitglieder durchzuführen, bevor diese Ihrer Discourse-Community beitreten. Bewerber füllen ein anpassbares öffentliches Formular unter /apply aus, Administratoren prüfen die Einreichungen und genehmigen oder lehnen sie ab, und genehmigte Bewerber erhalten automatisch einen privaten Einladungslink.

:link: GitHub: GitHub - R23DPrinting/discourse-member-application · GitHub


Die Geschichte

Ich betreibe eine private Community, die den einladungsbasierten Modus von Discourse nutzt. Wir haben die Mitgliedschaftsbewerbungen manuell verwaltet – über ein Google Formular, eine Tabellenkalkulation, manuelles Kopieren und Einfügen von Einladungslinks. Es funktionierte, aber es war nicht skalierbar und fühlte sich von der Community selbst getrennt an.

Ich habe nach einem Discourse-Plugin gesucht, das Vor-Einladungs-Bewerbungen verarbeiten kann. Ich habe keines gefunden, das passte. Also habe ich dieses hier gebaut.


Demo


Funktionen

:clipboard: Anpassbares Bewerbungsformular
Das Formular wird vollständig über eine Registerkarte „Felder“ im Admin-Panel erstellt – es ist kein Code erforderlich. Unterstützte Feldtypen: Text, Textbereich, Ja/Nein, Radio-Buttons, Kontrollkästchengruppe und einzelnes Kontrollkästchen. Felder unterstützen Beschriftungen, Hinweise, Pflichtfelder/optional, Aktivieren/Deaktivieren und bedingte Sichtbarkeit (zeigt ein Feld nur an, wenn ein anderes Feld einen bestimmten Wert hat).

:magnifying_glass_tilted_left: Admin-Dashboard
Alle Bewerbungen können von einer speziellen Plugin-Seite aus überprüft und verwaltet werden. Filtern Sie nach Status (Ausstehend / Genehmigt / Abgelehnt / Eingelöst), suchen Sie nach E-Mail oder Benutzername und blättern Sie durch große Listen. Zeigen Sie vollständige Bewerbungsdetails an, fügen Sie private Admin-Notizen hinzu und genehmigen oder lehnen Sie einzeln oder in großen Mengen ab.

:white_check_mark: Genehmigungsablauf
Die Genehmigung einer Bewerbung generiert eine einmalig verwendbare Discourse-Einladung und sendet diese per E-Mail an den Bewerber. Bei Ablehnung wird eine anpassbare Ablehnungs-E-Mail mit optionalem Feedback gesendet. Wenn der Bewerber die Einladung einlöst und ein Konto erstellt, wird der Bewerbungsstatus automatisch auf „Eingelöst“ aktualisiert. Genehmigten Mitgliedern kann optional automatisch eine Discourse-Gruppe hinzugefügt werden.

:bar_chart: Analysen
Die Registerkarte „Analysen“ zeigt zusammenfassende Statistiken (Gesamtzahl der Bewerbungen, Genehmigungsrate, durchschnittliche Überprüfungszeit), ein 12-wöchiges Trenddiagramm von Einreichungen vs. Genehmigungen und einen Conversion-Funnel von eingereicht → genehmigt → eingelöst.

:bell: Admin-Benachrichtigungen
Wenn eine neue Bewerbung eingereicht wird, wird eine private Nachricht an konfigurierte Benutzernamen (oder alle Administratoren, wenn leer gelassen) gesendet.

:artist_palette: Konfigurierbare UX

  • Einführungstext oben im Formular (unterstützt Markdown)
  • Erfolgsseite unter /apply/success nach der Einreichung mit einer konfigurierbaren Nachricht (unterstützt Markdown)
  • Schaltfläche „Für Beitritt bewerben“ auf der Anmeldeseite und der anmelde-pflichtigen Homepage (umschaltbar)
  • Bewerbungsablauf – automatische Ablehnung ausstehender Bewerbungen nach einer konfigurierbaren Anzahl von Tagen

:e_mail: Bearbeitbare E-Mail-Vorlagen
Sowohl die Bestätigungs-E-Mail für die Einreichung als auch die Ablehnungs-E-Mails können über Admin → Anpassen → E-Mail-Vorlagen bearbeitet werden – es sind keine Codeänderungen erforderlich.

:locked: Sicherheit
Ratenbegrenzung (5 Einreichungen pro IP pro Stunde), Duplikaterkennung (blockiert erneute Einreichung mit einer bereits genehmigten/ausstehenden E-Mail oder einem Benutzernamen und blockiert bereits registrierte E-Mails/Benutzernamen) und einmalig verwendbare Einladungen.


Konfiguration

Installation

Fügen Sie dies zu Ihrer /var/discourse/containers/app.yml hinzu:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/R23DPrinting/discourse-member-application.git

Dann neu erstellen:

cd /var/discourse && ./launcher rebuild app

Einrichten Ihres Formulars

Gehen Sie nach der Installation zu Admin → Plugins → Member Application → Fields (Mitgliederbewerbung → Felder), um Ihr Bewerbungsformular zu erstellen.

Das Plugin wird mit diesen Standardfeldern ausgeliefert (alle bearbeitbar oder löschbar):

  1. Gewünschter Benutzername
  2. Erzählen Sie uns ein wenig über sich
  3. Woher kennen Sie uns?
  4. Sind Sie derzeit Teil anderer ähnlicher Online-Communities? (Ja/Nein)
  5. Wenn ja, welche? (Bedingt – wird nur angezeigt, wenn oben Ja ausgewählt ist)
  6. Offenlegungen von Anbietern (Kontrollkästchengruppe)
  7. Bestätigung der Ehrlichkeit (Kontrollkästchen – Systemfeld, kann nicht gelöscht werden)

Verwenden Sie die Schaltfläche Feld hinzufügen, um neue Felder zu erstellen. Verwenden Sie die Pfeile nach oben/unten, um die Reihenfolge zu ändern. Um ein Feld bedingt zu machen, bearbeiten Sie es und verwenden Sie den Abschnitt „Nur anzeigen, wenn“, um ein übergeordnetes Feld und einen auslösenden Wert auszuwählen.

Arbeitsablauf

  1. Ein potenzielles Mitglied besucht Ihre Website und klickt auf Für Beitritt bewerben (oder navigiert direkt zu /apply)
  2. Die Person füllt das Formular aus und sendet es ab – es ist kein Konto erforderlich
  3. Administratoren erhalten eine private Nachricht als Benachrichtigung
  4. Der Administrator überprüft die Bewerbung unter Admin → Plugins → Member Application → Applications (Mitgliederbewerbung → Bewerbungen)
  5. Der Administrator genehmigt → der Bewerber erhält eine Einladungs-E-Mail mit einem einmalig verwendbaren Link
  6. Der Bewerber löst die Einladung ein, erstellt sein Konto, und der Bewerbungsstatus wird automatisch auf Eingelöst aktualisiert

Einstellungen

Name Beschreibung
member_application_enabled Aktiviert oder deaktiviert das Bewerbungsformular unter /apply
member_application_notify_usernames Durch Kommas getrennte Benutzernamen, die bei neuer Einreichung per PM benachrichtigt werden sollen. Leer lassen, um alle Administratoren zu benachrichtigen.
member_application_invite_group Gruppenname, der bei Genehmigung zur Einladung hinzugefügt wird (leer lassen, um dies zu überspringen)
member_application_expiry_days Lehnt ausstehende Bewerbungen nach dieser Anzahl von Tagen automatisch ab (0 = niemals)
member_application_expiry_notify Sendet eine Ablehnungs-E-Mail bei automatischem Ablauf von Bewerbungen
member_application_show_apply_button Zeigt eine Schaltfläche „Für Beitritt bewerben“ auf der Anmeldeseite und der anmelde-pflichtigen Homepage an
member_application_apply_button_text Beschriftung für die Schaltfläche „Für Beitritt bewerben“ (Standard: „Apply to Join“)
member_application_intro_text Einführungstext, der oben auf dem Bewerbungsformular angezeigt wird. Unterstützt Markdown. Leer lassen, um ihn auszublenden.
member_application_success_message Nachricht, die auf der Seite /apply/success nach der Einreichung angezeigt wird. Unterstützt Markdown.

Hinweise

  • Community-unabhängig – der gesamte Standardfeldtext kann über die Registerkarte „Felder“ konfiguriert werden
  • Funktioniert mit dem Modus login_required / einladungsbasiert von Discourse
  • MIT-lizziert
  • Getestet mit Discourse 2026.3.0

Probleme, PRs (Pull Requests) und Funktionsanfragen sind auf GitHub willkommen.

:link: GitHub - R23DPrinting/discourse-member-application · GitHub

5 „Gefällt mir“