mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Move core plugin TL -> group settings (#25355)
* DEV: Change poll_minimum_trust_level_to_create to group based setting New setting is poll_create_allowed_groups c.f. https://meta.discourse.org/t/changes-coming-to-settings-for-giving-access-to-features-from-trust-levels-to-groups/283408 * DEV: Move styleguide_admin_only to group based setting Not exactly a TL -> group change, but still part of the overall effort here: https://meta.discourse.org/t/changes-coming-to-settings-for-giving-access-to-features-from-trust-levels-to-groups/283408 New setting is styleguide_allowed_groups
This commit is contained in:
@@ -6,7 +6,9 @@ module Styleguide
|
||||
skip_before_action :check_xhr
|
||||
|
||||
def index
|
||||
ensure_admin if SiteSetting.styleguide_admin_only
|
||||
if !current_user || !current_user.in_any_groups?(SiteSetting.styleguide_allowed_groups_map)
|
||||
raise Discourse::InvalidAccess.new
|
||||
end
|
||||
|
||||
render "default/empty"
|
||||
end
|
||||
|
||||
@@ -2,3 +2,4 @@ en:
|
||||
site_settings:
|
||||
styleguide_enabled: 'Enable a "/styleguide" path to aid in styling of Discourse'
|
||||
styleguide_admin_only: "Limits visibility of the styleguide to admins"
|
||||
styleguide_allowed_groups: "Limits visibility of the styleguide to members of the provided groups"
|
||||
|
||||
@@ -3,3 +3,11 @@ plugins:
|
||||
default: false
|
||||
styleguide_admin_only:
|
||||
default: true
|
||||
hidden: true
|
||||
styleguide_allowed_groups:
|
||||
default: "1" # auto group admins
|
||||
type: group_list
|
||||
client: false
|
||||
allow_any: false
|
||||
refresh: true
|
||||
validator: "AtLeastOneGroupValidator"
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class FillStyleguideAdminOnlyGroups < ActiveRecord::Migration[7.0]
|
||||
def up
|
||||
old_setting =
|
||||
DB.query_single(
|
||||
"SELECT value FROM site_settings WHERE name = 'styleguide_admin_only' LIMIT 1",
|
||||
).first
|
||||
|
||||
if old_setting.present?
|
||||
allowed_groups = old_setting == "t" ? "1" : "14" # use admins AUTO_GROUP if true, otherwise default to TL4
|
||||
|
||||
DB.exec(
|
||||
"INSERT INTO site_settings(name, value, data_type, created_at, updated_at)
|
||||
VALUES('styleguide_allowed_groups', :setting, '20', NOW(), NOW())",
|
||||
setting: allowed_groups,
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def down
|
||||
raise ActiveRecord::IrreversibleMigration
|
||||
end
|
||||
end
|
||||
@@ -1,10 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
RSpec.describe "SiteSetting.styleguide_admin_only" do
|
||||
RSpec.describe "SiteSetting.styleguide_allowed_groups" do
|
||||
before { SiteSetting.styleguide_enabled = true }
|
||||
|
||||
context "when styleguide is admin only" do
|
||||
before { SiteSetting.styleguide_admin_only = true }
|
||||
before { SiteSetting.styleguide_allowed_groups = Group::AUTO_GROUPS[:admins] }
|
||||
|
||||
context "when user is admin" do
|
||||
before { sign_in(Fabricate(:admin)) }
|
||||
|
||||
Reference in New Issue
Block a user