Ошибка аватара провайдера Multisite DiscourseConnect

Проблема
Провайдер DiscourseConnect возвращает неверный URL для user_avatar в полезной нагрузке в среде с несколькими сайтами.

Когда 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 дня. Новые ответы больше не принимаются.