Make default user services configurable by admins #203

Merged
raucao merged 9 commits from feature/default_service_settings into master 2024-09-11 11:21:39 +00:00
3 changed files with 33 additions and 4 deletions
Showing only changes of commit 5474bf66e7 - Show all commits

View File

@@ -21,8 +21,14 @@ class Setting < RailsSettings::Base
include Settings::RemoteStorageSettings
include Settings::XmppSettings
def self.default_services
# TODO Make configurable from respective service settings page
%w[ discourse gitea mastodon mediawiki remotestorage xmpp ]
def self.available_services
known_services = %w[
discourse ejabberd email gitea mastodon mediawiki remotestorage
]
known_services.select {|s| Setting.send "#{s}_enabled?" }
end
field :default_services, type: :array,
default: self.available_services
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 }
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
end