diff --git a/app/assets/stylesheets/common/admin/admin_base.scss b/app/assets/stylesheets/common/admin/admin_base.scss
index 8e8be069c6d..938ae07bc37 100644
--- a/app/assets/stylesheets/common/admin/admin_base.scss
+++ b/app/assets/stylesheets/common/admin/admin_base.scss
@@ -564,6 +564,9 @@ table.api-keys {
.actions {
text-align: right;
}
+ .btn {
+ background-color: #ccc;
+ }
}
}
diff --git a/app/models/admin_dashboard_data.rb b/app/models/admin_dashboard_data.rb
index 65c3f18f780..63026537711 100644
--- a/app/models/admin_dashboard_data.rb
+++ b/app/models/admin_dashboard_data.rb
@@ -41,6 +41,7 @@ class AdminDashboardData
access_password_removal,
site_contact_username_check,
notification_email_check,
+ enforce_global_nicknames_check
].compact
end
@@ -167,6 +168,10 @@ class AdminDashboardData
I18n.t('dashboard.ruby_version_warning') if RUBY_VERSION == '2.0.0' and RUBY_PATCHLEVEL < 247
end
+ def enforce_global_nicknames_check
+ I18n.t('dashboard.enforce_global_nicknames_warning') if SiteSetting.enforce_global_nicknames and !SiteSetting.discourse_org_access_key.present?
+ end
+
# TODO: generalize this method of putting i18n keys with expiry in redis
# that should be reported on the admin dashboard:
def access_password_removal
diff --git a/config/locales/server.en.yml b/config/locales/server.en.yml
index fe125726384..54041f13336 100644
--- a/config/locales/server.en.yml
+++ b/config/locales/server.en.yml
@@ -440,6 +440,7 @@ en:
access_password_removal: "Your site was using the access_password setting, which has been removed. The login_required and must_approve_users settings have been enabled, which should be used instead. You can change them in the Site Settings. Be sure to approve users in the Pending Users list. (This message will go away after 2 days.)"
site_contact_username_warning: "The site_contact_username setting is blank. Please update it in the Site Settings. Set it to the username of an admin user who should be the sender of system messages."
notification_email_warning: "The notification_email setting is blank. Please update it in the Site Settings."
+ enforce_global_nicknames_warning: "The enforce_global_nicknames setting is checked, but the discourse_org_access_key is blank. A Discourse.org access key is required to use the enforce_global_nicknames setting. Please update your Site Settings."
content_types:
education_new_reply:
diff --git a/spec/models/admin_dashboard_data_spec.rb b/spec/models/admin_dashboard_data_spec.rb
index 5e1a3f9e14b..b8da3fc38ff 100644
--- a/spec/models/admin_dashboard_data_spec.rb
+++ b/spec/models/admin_dashboard_data_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe AdminDashboardData do
describe "rails_env_check" do
- subject { AdminDashboardData.new.rails_env_check }
+ subject { described_class.new.rails_env_check }
it 'returns nil when running in production mode' do
Rails.stubs(:env).returns('production')
@@ -22,7 +22,7 @@ describe AdminDashboardData do
end
describe 'host_names_check' do
- subject { AdminDashboardData.new.host_names_check }
+ subject { described_class.new.host_names_check }
it 'returns nil when host_names is set' do
Discourse.stubs(:current_hostname).returns('something.com')
@@ -41,7 +41,7 @@ describe AdminDashboardData do
end
describe 'gc_checks' do
- subject { AdminDashboardData.new.gc_checks }
+ subject { described_class.new.gc_checks }
it 'returns nil when gc params are set' do
ENV.stubs(:[]).with('RUBY_GC_MALLOC_LIMIT').returns(90000000)
@@ -55,7 +55,7 @@ describe AdminDashboardData do
end
describe 'sidekiq_check' do
- subject { AdminDashboardData.new.sidekiq_check }
+ subject { described_class.new.sidekiq_check }
it 'returns nil when sidekiq processed a job recently' do
Jobs.stubs(:last_job_performed_at).returns(1.minute.ago)
@@ -89,7 +89,7 @@ describe AdminDashboardData do
end
describe 'ram_check' do
- subject { AdminDashboardData.new.ram_check }
+ subject { described_class.new.ram_check }
it 'returns nil when total ram is 1 GB' do
MemInfo.any_instance.stubs(:mem_total).returns(1025272)
@@ -108,7 +108,7 @@ describe AdminDashboardData do
end
describe 'send_consumer_email_check' do
- subject { AdminDashboardData.new.send_consumer_email_check }
+ subject { described_class.new.send_consumer_email_check }
it 'returns nil if gmail.com is not in the smtp_settings address' do
ActionMailer::Base.stubs(:smtp_settings).returns({address: 'mandrillapp.com'})
@@ -131,7 +131,7 @@ describe AdminDashboardData do
end
describe 'default_logo_check' do
- subject { AdminDashboardData.new.default_logo_check }
+ subject { described_class.new.default_logo_check }
describe 'favicon_url check' do
before do
@@ -220,7 +220,7 @@ describe AdminDashboardData do
end
describe 'facebook' do
- subject { AdminDashboardData.new.facebook_config_check }
+ subject { described_class.new.facebook_config_check }
let(:enable_setting) { :enable_facebook_logins }
let(:key) { :facebook_app_id }
let(:secret) { :facebook_app_secret }
@@ -228,7 +228,7 @@ describe AdminDashboardData do
end
describe 'twitter' do
- subject { AdminDashboardData.new.twitter_config_check }
+ subject { described_class.new.twitter_config_check }
let(:enable_setting) { :enable_twitter_logins }
let(:key) { :twitter_consumer_key }
let(:secret) { :twitter_consumer_secret }
@@ -236,7 +236,7 @@ describe AdminDashboardData do
end
describe 'github' do
- subject { AdminDashboardData.new.github_config_check }
+ subject { described_class.new.github_config_check }
let(:enable_setting) { :enable_github_logins }
let(:key) { :github_client_id }
let(:secret) { :github_client_secret }
@@ -244,4 +244,26 @@ describe AdminDashboardData do
end
end
+ describe "enforce_global_nicknames_check" do
+ subject { described_class.new.enforce_global_nicknames_check }
+
+ it 'returns nil when enforce_global_nicknames and discourse_org_access_key are set' do
+ SiteSetting.stubs(:enforce_global_nicknames).returns(true)
+ SiteSetting.stubs(:discourse_org_access_key).returns('123')
+ subject.should be_nil
+ end
+
+ it 'returns a string when enforce_global_nicknames is true but discourse_org_access_key is not' do
+ SiteSetting.stubs(:enforce_global_nicknames).returns(true)
+ SiteSetting.stubs(:discourse_org_access_key).returns('')
+ subject.should_not be_nil
+ end
+
+ it 'returns nil when enforce_global_nicknames is false and discourse_org_access_key is set' do
+ SiteSetting.stubs(:enforce_global_nicknames).returns(false)
+ SiteSetting.stubs(:discourse_org_access_key).returns('123')
+ subject.should be_nil
+ end
+ end
+
end