Turn default services into a configurable setting
With the default value being all enabled services
This commit is contained in:
parent
ef2a37e2bf
commit
5474bf66e7
@ -21,8 +21,14 @@ class Setting < RailsSettings::Base
|
|||||||
include Settings::RemoteStorageSettings
|
include Settings::RemoteStorageSettings
|
||||||
include Settings::XmppSettings
|
include Settings::XmppSettings
|
||||||
|
|
||||||
def self.default_services
|
def self.available_services
|
||||||
# TODO Make configurable from respective service settings page
|
known_services = %w[
|
||||||
%w[ discourse gitea mastodon mediawiki remotestorage xmpp ]
|
discourse ejabberd email gitea mastodon mediawiki remotestorage
|
||||||
|
]
|
||||||
|
|
||||||
|
known_services.select {|s| Setting.send "#{s}_enabled?" }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
field :default_services, type: :array,
|
||||||
|
default: self.available_services
|
||||||
end
|
end
|
||||||
|
23
spec/models/setting_spec.rb
Normal file
23
spec/models/setting_spec.rb
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
require 'rails_helper'
|
||||||
|
|
||||||
|
RSpec.describe Setting, type: :model do
|
||||||
|
|
||||||
|
describe ".available_services" do
|
||||||
|
before do
|
||||||
|
Setting.discourse_enabled = true
|
||||||
|
Setting.ejabberd_enabled = true
|
||||||
|
Setting.email_enabled = false
|
||||||
|
Setting.gitea_enabled = false
|
||||||
|
Setting.mastodon_enabled = true
|
||||||
|
Setting.mediawiki_enabled = false
|
||||||
|
Setting.remotestorage_enabled = true
|
||||||
|
end
|
||||||
|
|
||||||
|
it "contains all enabled services" do
|
||||||
|
expect(Setting.available_services).to eq(%w[
|
||||||
|
discourse ejabberd mastodon remotestorage
|
||||||
|
])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
@ -178,7 +178,7 @@ RSpec.describe User, type: :model do
|
|||||||
after { clear_enqueued_jobs }
|
after { clear_enqueued_jobs }
|
||||||
|
|
||||||
it "enables default services" do
|
it "enables default services" do
|
||||||
expect(user).to receive(:enable_service).with(%w[ discourse gitea mastodon mediawiki remotestorage xmpp ])
|
expect(user).to receive(:enable_service).with(Setting.default_services)
|
||||||
user.send :devise_after_confirmation
|
user.send :devise_after_confirmation
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user