Skip to content
Snippets Groups Projects
Commit 2265ce34 authored by Stan Hu's avatar Stan Hu
Browse files

Fix no avatar not showing in user selection box

After upgrading to Ruby 2.5.3, we switched `URI.join` in favor of
`Gitlab::Utils.append_path`. However,
ActionController::Base.helpers.image_path can return a full URL if a CDN
host is present.

Rails provides a way to generate the full URL using the asset path, but
that doesn't appear to work because `request` is nil`.

Revert to the previous behavior to handle CDNs and relative URLs.

Closes https://gitlab.com/gitlab-org/gitlab-ce/issues/56268
parent 1161c99e
No related branches found
No related tags found
No related merge requests found
---
title: Fix no avatar not showing in user selection box
merge_request: 24346
author:
type: fixed
Loading
Loading
@@ -8,10 +8,7 @@ module GonHelper
 
def add_gon_variables
gon.api_version = 'v4'
gon.default_avatar_url =
Gitlab::Utils.append_path(
Gitlab.config.gitlab.url,
ActionController::Base.helpers.image_path('no_avatar.png'))
gon.default_avatar_url = default_avatar_url
gon.max_file_size = Gitlab::CurrentSettings.max_attachment_size
gon.asset_host = ActionController::Base.asset_host
gon.webpack_public_path = webpack_public_path
Loading
Loading
@@ -50,5 +47,15 @@ def push_frontend_feature_flag(name, *args)
# use this method to push multiple feature flags.
gon.push({ features: { var_name => enabled } }, true)
end
def default_avatar_url
# We can't use ActionController::Base.helpers.image_url because it
# doesn't return an actual URL because request is nil for some reason.
#
# We also can't use Gitlab::Utils.append_path because the image path
# may be an absolute URL.
URI.join(Gitlab.config.gitlab.url,
ActionController::Base.helpers.image_path('no_avatar.png')).to_s
end
end
end
Loading
Loading
@@ -29,4 +29,13 @@
helper.push_frontend_feature_flag(:my_feature_flag, 10)
end
end
describe '#default_avatar_url' do
it 'returns an absolute URL' do
url = helper.default_avatar_url
expect(url).to match(/^http/)
expect(url).to match(/no_avatar.*png$/)
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment