Multisite DiscourseConnect プロバイダーのアバター バグ

問題
DiscourseConnect プロバイダーがマルチサイト環境でペイロード内の user_avatar に誤った URL を返します。

DiscourseConnect がプロバイダーとして機能する場合、avatar_url を ‘uploads’ とマルチサイトホスト名が欠落した形式で返します。

例:

期待値: https://cdn.cdnprovider.com/uploads/dbname/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg'
実際:  https://cdn.cdnprovider.com/original/1X/1e653a3bc23b6b07017f5635128da0b353489e60.jpg`

コードはこちらにあり、アップロードから URL を再構築しています。

      if current_user.uploaded_avatar.present?
        base_url =
          Discourse.store.external? ? "#{Discourse.store.absolute_base_url}/" : Discourse.base_url
        avatar_url =
          "#{base_url}#{Discourse.store.get_path_for_upload(current_user.uploaded_avatar)}"
        sso.avatar_url = UrlHelper.absolute Discourse.store.cdn_url(avatar_url)
      end

一方、user.uploaded_avatar.url は正しい結果を返すようです。

「いいね!」 3

ありがとうございます。確認します :eyes:

「いいね!」 3

修正されます:

「いいね!」 4

このトピックは2日後に自動的に閉じられました。返信はもうできません。