diff --git a/plugin.rb b/plugin.rb index 0c2d020..a4b81f1 100644 --- a/plugin.rb +++ b/plugin.rb @@ -14,3 +14,15 @@ enabled_site_setting :discourse_login_client_enabled auth_provider icon: "fab-discourse", authenticator: DiscourseLoginClientAuthenticator.new + +after_initialize do + on_enabled_change do |_, enabled| + if enabled + SiteSetting.set(:auth_skip_create_confirm, true) + SiteSetting.hidden_settings_provider.add_hidden(:auth_skip_create_confirm) + else + SiteSetting.set(:auth_skip_create_confirm, false) + SiteSetting.hidden_settings_provider.remove_hidden(:auth_skip_create_confirm) + end + end +end diff --git a/spec/lib/site_settings_override_spec.rb b/spec/lib/site_settings_override_spec.rb new file mode 100644 index 0000000..b08b3d2 --- /dev/null +++ b/spec/lib/site_settings_override_spec.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe "SiteSetting" do + it "overrides auth_skip_create_confirm only when the plugin is enabled" do + expect(SiteSetting.auth_skip_create_confirm).to eq(false) + + SiteSetting.discourse_login_client_enabled = true + + expect(SiteSetting.auth_skip_create_confirm).to eq(true) + expect(SiteSetting.hidden_settings).to include(:auth_skip_create_confirm) + + SiteSetting.discourse_login_client_enabled = false + + expect(SiteSetting.auth_skip_create_confirm).to eq(false) + expect(SiteSetting.hidden_settings).not_to include(:auth_skip_create_confirm) + end +end