diff --git a/lib/discourse.rb b/lib/discourse.rb index 890aa9aa93..3e6f4a57a3 100644 --- a/lib/discourse.rb +++ b/lib/discourse.rb @@ -272,7 +272,7 @@ module Discourse # Either returns the site_contact_username user or the first admin. def self.site_contact_user user = User.find_by(username_lower: SiteSetting.site_contact_username.downcase) if SiteSetting.site_contact_username.present? - user ||= User.admins.real.order(:id).first + user ||= (system_user || User.admins.real.order(:id).first) end SYSTEM_USER_ID ||= -1 diff --git a/spec/components/discourse_spec.rb b/spec/components/discourse_spec.rb index 5765a6d425..deee763a98 100644 --- a/spec/components/discourse_spec.rb +++ b/spec/components/discourse_spec.rb @@ -62,9 +62,9 @@ describe Discourse do expect(Discourse.site_contact_user).to eq(another_admin) end - it 'returns the first admin user otherwise' do + it 'returns the system user otherwise' do SiteSetting.stubs(:site_contact_username).returns(nil) - expect(Discourse.site_contact_user).to eq(admin) + expect(Discourse.site_contact_user.username).to eq("system") end end