Commit bbf640a5 authored by Sean McGivern's avatar Sean McGivern

Merge branch 'revert-8e8e9cb6' into 'master'

Revert "Merge branch 'dblessing_avatar_for_blocked_users' into 'master'"

See merge request gitlab-org/gitlab!76935
parents d2080bb6 ee53b29d
# frozen_string_literal: true # frozen_string_literal: true
module AvatarsHelper module AvatarsHelper
DEFAULT_AVATAR_PATH = 'no_avatar.png'
def project_icon(project, options = {}) def project_icon(project, options = {})
source_icon(project, options) source_icon(project, options)
end end
...@@ -36,11 +34,11 @@ module AvatarsHelper ...@@ -36,11 +34,11 @@ module AvatarsHelper
end end
def avatar_icon_for_user(user = nil, size = nil, scale = 2, only_path: true) def avatar_icon_for_user(user = nil, size = nil, scale = 2, only_path: true)
return gravatar_icon(nil, size, scale) unless user if user
return default_avatar if blocked_or_unconfirmed?(user) && !can_admin?(current_user) user.avatar_url(size: size, only_path: only_path) || default_avatar
else
user_avatar = user.avatar_url(size: size, only_path: only_path) gravatar_icon(nil, size, scale)
user_avatar || default_avatar end
end end
def gravatar_icon(user_email = '', size = nil, scale = 2) def gravatar_icon(user_email = '', size = nil, scale = 2)
...@@ -49,7 +47,7 @@ module AvatarsHelper ...@@ -49,7 +47,7 @@ module AvatarsHelper
end end
def default_avatar def default_avatar
ActionController::Base.helpers.image_path(DEFAULT_AVATAR_PATH) ActionController::Base.helpers.image_path('no_avatar.png')
end end
def author_avatar(commit_or_event, options = {}) def author_avatar(commit_or_event, options = {})
...@@ -159,14 +157,4 @@ module AvatarsHelper ...@@ -159,14 +157,4 @@ module AvatarsHelper
source.name[0, 1].upcase source.name[0, 1].upcase
end end
end end
def blocked_or_unconfirmed?(user)
user.blocked? || !user.confirmed?
end
def can_admin?(user)
return false unless user
user.can_admin_all_resources?
end
end end
...@@ -243,10 +243,6 @@ RSpec.describe 'User page' do ...@@ -243,10 +243,6 @@ RSpec.describe 'User page' do
expect(page).to have_content("@#{user.username}") expect(page).to have_content("@#{user.username}")
end end
it 'shows default avatar' do
expect(page).to have_css('//img[data-src^="/assets/no_avatar"]')
end
it_behaves_like 'default brand title page meta description' it_behaves_like 'default brand title page meta description'
end end
...@@ -290,10 +286,6 @@ RSpec.describe 'User page' do ...@@ -290,10 +286,6 @@ RSpec.describe 'User page' do
expect(page).to have_content("This user has a private profile") expect(page).to have_content("This user has a private profile")
end end
it 'shows default avatar' do
expect(page).to have_css('//img[data-src^="/assets/no_avatar"]')
end
it_behaves_like 'default brand title page meta description' it_behaves_like 'default brand title page meta description'
end end
......
...@@ -4,7 +4,6 @@ require 'spec_helper' ...@@ -4,7 +4,6 @@ require 'spec_helper'
RSpec.describe AvatarsHelper do RSpec.describe AvatarsHelper do
include UploadHelpers include UploadHelpers
include Devise::Test::ControllerHelpers
let_it_be(:user) { create(:user) } let_it_be(:user) { create(:user) }
...@@ -146,49 +145,12 @@ RSpec.describe AvatarsHelper do ...@@ -146,49 +145,12 @@ RSpec.describe AvatarsHelper do
describe '#avatar_icon_for_user' do describe '#avatar_icon_for_user' do
let(:user) { create(:user, avatar: File.open(uploaded_image_temp_path)) } let(:user) { create(:user, avatar: File.open(uploaded_image_temp_path)) }
let(:helper_args) { [user] }
shared_examples 'blocked or unconfirmed user with avatar' do
it 'returns the default avatar' do
expect(helper.avatar_icon_for_user(user).to_s)
.to match_asset_path(described_class::DEFAULT_AVATAR_PATH)
end
context 'when the current user is an admin', :enable_admin_mode do
let(:current_user) { create(:user, :admin) }
before do
allow(helper).to receive(:current_user).and_return(current_user)
end
it 'returns the user avatar' do
expect(helper.avatar_icon_for_user(user).to_s)
.to eq(user.avatar.url)
end
end
end
context 'with a user object passed' do context 'with a user object passed' do
it 'returns a relative URL for the avatar' do it 'returns a relative URL for the avatar' do
expect(helper.avatar_icon_for_user(user).to_s) expect(helper.avatar_icon_for_user(user).to_s)
.to eq(user.avatar.url) .to eq(user.avatar.url)
end end
context 'when the user is blocked' do
before do
user.block!
end
it_behaves_like 'blocked or unconfirmed user with avatar'
end
context 'when the user is unconfirmed' do
before do
user.update!(confirmed_at: nil)
end
it_behaves_like 'blocked or unconfirmed user with avatar'
end
end end
context 'without a user object passed' do context 'without a user object passed' do
...@@ -209,7 +171,7 @@ RSpec.describe AvatarsHelper do ...@@ -209,7 +171,7 @@ RSpec.describe AvatarsHelper do
end end
it 'returns a generic avatar' do it 'returns a generic avatar' do
expect(helper.gravatar_icon(user_email)).to match_asset_path(described_class::DEFAULT_AVATAR_PATH) expect(helper.gravatar_icon(user_email)).to match_asset_path('no_avatar.png')
end end
end end
...@@ -219,7 +181,7 @@ RSpec.describe AvatarsHelper do ...@@ -219,7 +181,7 @@ RSpec.describe AvatarsHelper do
end end
it 'returns a generic avatar when email is blank' do it 'returns a generic avatar when email is blank' do
expect(helper.gravatar_icon('')).to match_asset_path(described_class::DEFAULT_AVATAR_PATH) expect(helper.gravatar_icon('')).to match_asset_path('no_avatar.png')
end end
it 'returns a valid Gravatar URL' do it 'returns a valid Gravatar URL' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment