FEATURE: Add setting to exclude groups from /about page (#28809)

This commit adds a new `about_page_hidden_groups` setting to exclude members of specific groups from the admin and moderator lists on the /about page.

Internal topic: t/137717.
This commit is contained in:
Osama Sayegh
2024-09-10 14:43:41 +03:00
committed by GitHub
parent 88e1690d86
commit 0a994a9221
4 changed files with 63 additions and 2 deletions

View File

@ -132,6 +132,29 @@ RSpec.describe About do
end
end
describe "#moderators" do
fab!(:mod_1) { Fabricate(:moderator) }
fab!(:mod_2) { Fabricate(:moderator) }
fab!(:mod_3) { Fabricate(:moderator) }
context "with the about_page_hidden_groups setting" do
fab!(:group_1) { Fabricate(:group, users: [mod_1, mod_3]) }
fab!(:group_2) { Fabricate(:group, users: [mod_3]) }
fab!(:group_3) { Fabricate(:group) }
before { SiteSetting.about_page_hidden_groups = [group_1.id, group_2.id].join("|") }
it "hides moderators that are in any of the specified groups" do
expect(About.new.moderators).to contain_exactly(mod_2)
end
it "doesn't hide any moderators if the setting is empty" do
SiteSetting.about_page_hidden_groups = ""
expect(About.new.moderators).to contain_exactly(mod_1, mod_2, mod_3)
end
end
end
describe "#admins" do
fab!(:admin_mark) { Fabricate(:admin, name: "mark") }
fab!(:admin_matt) { Fabricate(:admin, name: "matt") }
@ -148,5 +171,22 @@ RSpec.describe About do
DiscoursePluginRegistry.unregister_modifier(plugin_instance, :about_admins, &modifier_block)
end
end
context "with the about_page_hidden_groups setting" do
fab!(:group_1) { Fabricate(:group, users: [admin_mark, admin_matt]) }
fab!(:group_2) { Fabricate(:group, users: [admin_mark]) }
fab!(:group_3) { Fabricate(:group, users: [admin_kate]) }
before { SiteSetting.about_page_hidden_groups = [group_1.id, group_2.id].join("|") }
it "hides admins that are in any of the specified groups" do
expect(About.new.admins).to contain_exactly(admin_kate)
end
it "doesn't hide any admins if the setting is empty" do
SiteSetting.about_page_hidden_groups = ""
expect(About.new.admins).to contain_exactly(admin_kate, admin_mark, admin_matt)
end
end
end
end