Wäre es möglich, eine private Kategorie zu erstellen, die nur für eine benutzerdefinierte Gruppe zugänglich ist, und die Mitgliedschaft dieser Gruppe mit einer externen Datenbank zu synchronisieren?
Ich erwäge, auf einem öffentlichen Forum eine Kategorie für ein Spiegelbild einer privaten Mailingliste einzurichten. Nicht alle Mitglieder der einen Liste sind automatisch Mitglieder der anderen. Damit dies funktioniert, müsste Discourse (oder ein separates Skript) bestehende Discourse-Benutzer basierend darauf, wer zu einem bestimmten Zeitpunkt Mitglied der E-Mail-Liste ist, automatisch zur benutzerdefinierten Gruppe hinzufügen oder daraus entfernen.
In diesem Fall müsste ich WordPress ausschließlich als Brücke zwischen Mailman und Discourse installieren. Ich bin mir sicher, dass ich Benutzer zwischen Mailman und WordPress synchronisieren könnte. Aber das wäre wie mit dem Kanonenkugel auf die Fliege schießen.
Ich habe mir gerade die Discourse-API-Dokumentationsseite angesehen. Es ist möglich, eine Liste von Benutzern (die Benutzernamen enthält), einen Benutzer nach Benutzernamen (der die Gruppen des Benutzers enthält) abzurufen, einen Benutzer zu einer Gruppe hinzuzufügen und einen Benutzer aus einer Gruppe zu entfernen. Ich könnte also regelmäßig einen Cron-Job ausführen, um sicherzustellen, dass nur aktuelle Mailman-Listen-Abonnenten Mitglieder der privaten Discourse-Gruppe sind.
Eine API-Lösung wie diese würde ich empfehlen. Mir ist keine Lösung für die Integration von Mailman in Discourse bekannt. Wenn du den Mailman-Server betreibst, könntest du dort Hooks einrichten, um Personen automatisch zur Discourse-Gruppe hinzuzufügen oder daraus zu entfernen, sobald sich ihr Abonnementstatus ändert. Ein täglicher Cron-Job, der die Listen synchronisiert, ist jedoch wahrscheinlich einfacher und fast genauso effektiv. Je nach Anzahl der Abonnenten und der Fluktuationsrate könntest du auch noch weniger technisch vorgehen: Lass die Nutzer einfach den Zugang zur Gruppe anfragen oder nutze eine Lösung wie Invite users to a group.