FEATURE: Use the site's small logo as the system user's avatar. (#11661)

This commit is contained in:
Roman Rizzi 2021-01-08 10:40:00 -03:00 committed by GitHub
parent e63a9facc7
commit caa17386ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 1 deletions

View File

@ -868,7 +868,11 @@ class User < ActiveRecord::Base
end
def avatar_template
self.class.avatar_template(username, uploaded_avatar_id)
if id == Discourse::SYSTEM_USER_ID && SiteSetting.logo_small
UrlHelper.absolute(SiteSetting.logo_small.url)
else
self.class.avatar_template(username, uploaded_avatar_id)
end
end
# The following count methods are somewhat slow - definitely don't use them in a loop.

View File

@ -1337,6 +1337,29 @@ describe User do
end
describe '#avatar_template' do
it 'uses the small logo if the user is the system user' do
logo_small_url = UrlHelper.absolute(SiteSetting.logo_small.url)
expect(Discourse.system_user.avatar_template).to eq(logo_small_url)
end
it 'uses the system user avatar if the logo is nil' do
SiteSetting.logo_small = nil
system_user = Discourse.system_user
expected = User.avatar_template(system_user.username, system_user.uploaded_avatar_id)
expect(Discourse.system_user.avatar_template).to eq(expected)
end
it 'uses the regular avatar for other users' do
user = Fabricate(:user)
expected = User.avatar_template(user.username, user.uploaded_avatar_id)
expect(user.avatar_template).to eq(expected)
end
end
describe "update_posts_read!" do
context "with a UserVisit record" do
let!(:user) { Fabricate(:user) }