Wir haben keine Probleme beim Zugriff auf die external_id aus dem SSO-Datensatz des aktuell angemeldeten Benutzers mit dem folgenden Ansatz:
api.getCurrentUser().external_id
Wir haben jedoch einige Schaltflächen/Links, wenn der aktuell angemeldete Benutzer die Profilzusammenfassung einer anderen Person anzeigt (z. B. Person X). Diese external_id ist die primäre Kennung, die auf unserer Website verwendet wird und die wir für einige Weiterleitungen und Aktionen von unserer Website aus verwenden werden. Die Verwendung der Admin-Benutzer-API funktioniert, aber offensichtlich nicht für Nicht-Admin-Benutzerkonten.
# im after_initialize-Block des Plugins
after_initialize do
# Bearbeiten: Wahrscheinlich auch prüfen, ob `SiteSetting.enable_discourse_connect` `true` zurückgibt
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
Die external_id ist eine Eigenschaft des single_sign_on_record, nicht des user. Ich erinnere mich daran, weil ich etwas damit zu tun hatte:
Vielen Dank an alle für die Beiträge, wir haben dies über benutzerdefinierte Benutzerfelder gelöst, die während des Logins aus unserer Anwendung synchronisiert werden.