Ich habe gerade einen Title-Datenblock zu meinem SSO-Payload hinzugefügt. Der Titel wird zwar korrekt gesetzt, aber bei nachfolgenden Logins nicht mehr aktualisiert.
Ich dachte, ich sollte prüfen, ob die Einstellungen so konfiguriert sind, dass SSO den Titel überschreiben darf. Ich finde jedoch keine Einstellung namens „SSO überschreibt Titel“. Wurde diese beim Hinzufügen des Titels zum SSO-Payload übersehen? Oder ist sie in einer anderen Einstellung implizit enthalten?
Meine Community braucht das dringend, da ich den Titel basierend auf dem Flugzeug festlege, das sie besitzen, und dies ändert sich von Zeit zu Zeit!
Beim Durchsehen des Discourse-Quellcodes scheint es, dass, wenn title im SSO-Payload enthalten ist, der Titel des Benutzers bei jeder Anmeldung von Discourse mit SSO aktualisiert wird. Ein wichtiger Hinweis: Du kannst keinen Titel erstellen, indem du ihn zum SSO-Payload hinzufügst; du musst stattdessen den Titel einer bereits existierenden Discourse-Gruppe angeben, der der Benutzer angehört.
Ich habe dies auf meiner eigenen Seite getestet, und es funktioniert bei mir einwandfrei.
Das ist interessant, denn ich erstelle Titel definitiv, indem ich sie zum Payload hinzufüge, und es handelt sich dabei nicht um Gruppen. Zum Beispiel:
Wie Sie sehen können, ist dieser Titel für diese Gruppe von Flugzeugbesitzern sehr nützlich, also ist das eine gute Funktion!
Meinen Tests zufolge wird der SSO-Payload den Titel nach der Festlegung nicht ändern oder zurücksetzen. Und die Benutzer können den Titel auch nicht bearbeiten … obwohl ich hier die Verbindung zu Gruppen sehe, da sie eine Gruppe auswählen können, die sie als ihren Titel anzeigen möchten.
Vielleicht entwickelt sich das zu einem Feature-Vorschlag? Oder zu einer Idee zur Erweiterung dieser Funktion? Für unseren Zweck ist das wirklich eine tolle Sache.
Du hast recht. Was mich verwirrt hat, war, dass der Titel auf „Keiner“ gesetzt wurde, wenn ich einen Titel sende, der nicht dem Titel einer Gruppe entspricht, der der Benutzer angehört:
Das Senden eines beliebigen Titels im Payload aktualisiert jedoch den title des Benutzers bei jedem SSO-Login. Du kannst dies entweder über die Rails-Konsole oder mit dem Data Explorer-Plugin überprüfen, falls dieses auf deiner Seite installiert ist.
Das scheint der Nachteil dieses Ansatzes zu sein. Die einzigen Titel, die ein Benutzer auf seiner Profilseite auswählen kann, sind die Titel der Discourse-Gruppen, denen die Benutzer angehören.
Das funktioniert bei uns tatsächlich recht gut, da unser Mitgliederverwaltungssystem diese Details verwaltet und unsere Mitglieder manchmal eine Erinnerung benötigen, um ihre Profile zu aktualisieren.
Ich habe es gerade noch einmal getestet, und jetzt funktioniert es. Das ist immer so eine Liebe-Hass-Sache… ich bin froh, dass ich nichts reparieren muss, aber verwirrt darüber, warum meine Tests vorher ein Problem gezeigt haben. Also ist alles in Ordnung, danke!
Ich habe herausgefunden, warum meine Tests nicht funktioniert haben. Man kann einen Titel ändern, aber nicht über SSO auf null setzen. Wenn man einen null-Wert für den Titel sendet, wird der Titel nicht gelöscht.
Ich habe etwas SSO-Code hinzugefügt, der jeden null-Wert für den Titel in ein „-“ umwandelt, und das hat funktioniert. Ich habe es nicht mit einem Leerzeichen versucht, das könnte auch funktionieren.