現在のログインユーザーのSSOレコードから external_id にアクセスする際に問題はありません。以下のアプローチを使用しています。
api.getCurrentUser().external_id
しかし、現在のログインユーザーが他のユーザーのプロファイル概要(**例:**人物X)を表示している場合、いくつかのボタン/リンクで問題が発生します。この external_id は、当社のウェブサイトで使用されるプライマリ識別子であり、ウェブサイトからのリダイレクトやアクションに使用します。管理者ユーザーAPIを使用すると機能しますが、当然ながら非管理者ユーザーアカウントでは機能しません。
これは可能でしょうか?また、その方法は?
pfaffman
(Jay Pfaffman)
2
ユーザーシリアライザーに external_id を追加するプラグインが必要だと思います。
add_to_serializer(:user, :external_id) do
object.external_id
end
「いいね!」 3
simon
3
以下のようなものだと思います。
# プラグインの after_initialize ブロック内
after_initialize do
# 編集: `SiteSetting.enable_discourse_connect` が `true` を返すことを確認する必要もあるでしょう
add_to_serializer(:user, :external_id) {object&.single_sign_on_record&.external_id}
end
external_id は user のプロパティではなく、single_sign_on_record のプロパティです。これには以下の件で関わったことを覚えています。
「いいね!」 3
皆さん、ご意見ありがとうございました。最終的には、ログイン時にアプリケーションから同期されるカスタムユーザーフィールドを使用してこれを行いました。
「いいね!」 1
system
(system)
クローズされました:
5
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.