Turn default services into a configurable setting

With the default value being all enabled services
This commit is contained in:
Râu Cao 2024-09-04 13:06:32 +02:00
parent ef2a37e2bf
commit 5474bf66e7
Signed by: raucao
GPG Key ID: 37036C356E56CC51
3 changed files with 33 additions and 4 deletions

View File

@ -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

View 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

View File

@ -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