Wir befinden uns derzeit dabei, einige Änderungen am SSO-Login vorzunehmen. Das Ergebnis ist, dass sich ein Benutzer anmelden kann, ohne von der Discourse-Seite weitergeleitet zu werden.
Dies wird erreicht, indem ein Iframe zum SSO-Anbieter geöffnet wird. Anschließend wird erst dann auf die sso_login-URL weitergeleitet, wenn dieser Frame ein Token zurückgegeben hat.
Ich schaue mir noch den Quellcode an, also vielleicht klappt es. Aber ich bin zunehmend davon überzeugt, dass die Plugin-Architektur mir nicht genug Kontrolle bietet, um das zu erreichen, was ich brauche.
Ich denke, Sie sollten die Architektur berücksichtigen und nicht zu sehr darauf bestehen, ein eingebettetes iframe zu verwenden.
Pop-up-Anmeldefenster und Callbacks sind beispielsweise gängige Praxis und mit einem Plugin sehr einfach umzusetzen.
Die Verwaltung eines Discourse-Forks wäre ein völlig ineffizienter Ansatz und ein ständiger Albtraum. Im Gegensatz dazu können Plugins, wenn sie richtig entwickelt werden, sehr robust gegenüber Änderungen sein und erfordern deutlich weniger Wartung.
Diejenigen, die versucht haben, eine abgezweigte Version von Discourse zu pflegen, bereuen dies zutiefst. Sie benötigen entweder einen Vollzeitentwickler, müssen Änderungen integrieren oder können nie upgraden. Am Ende werden Sie ohnehin zu einem Plugin wechseln.
Ich vermute, dass Sie das, was Sie benötigen, in einem Plugin umsetzen können oder dies durch einen PR (Pull Request) ermöglichen lassen. Sie sollten entweder erklären, warum Sie glauben, Ihr Problem nicht in einem Plugin lösen zu können, oder im Kanal Marketplace um Hilfe bitten.
Ich verwalte Discourse als Teil meines Geschäfts (Redirecting…) und habe einige Kunden, die eine benutzerdefinierte Konfiguration benötigen, sich jedoch kein Hosting auf Enterprise-Niveau leisten können. Ich würde mich sehr über Ihre Aufträge freuen, würde jedoch keine Unterstützung für eine Abzweigung (Fork) in Betracht ziehen.
Ich kann auch bestätigen, dass wir auf Discourse.org auch keine Fork-Version von Discourse hosten würden, selbst nicht im Enterprise-Plan. Für Ihre Änderungen müssen Sie Plugins oder Theme-Komponenten erstellen.