mirror of
https://github.com/discourse/discourse.git
synced 2024-12-25 17:03:43 +08:00
0839bce7b6
In this PR, we defined the ability to group site settings by area - https://github.com/discourse/discourse/pull/28570 Plugins should be able to register in their own areas.
31 lines
1006 B
Ruby
31 lines
1006 B
Ruby
# frozen_string_literal: true
|
|
|
|
class Admin::Config::SiteSettingsController < Admin::AdminController
|
|
ADMIN_CONFIG_AREA_ALLOWLISTED_HIDDEN_SETTINGS = %i[
|
|
extended_site_description
|
|
about_banner_image
|
|
community_owner
|
|
]
|
|
|
|
# This endpoint is intended to be used only for admin config areas,
|
|
# for a specific collection of site settings. The admin site settings
|
|
# UI itself uses the Admin::SiteSettingsController#index endpoint,
|
|
# which also supports a `category` and `plugin` filter.
|
|
def index
|
|
if params[:filter_names].blank? && SiteSetting.valid_areas.exclude?(params[:filter_area])
|
|
raise Discourse::InvalidParameters
|
|
end
|
|
|
|
render_json_dump(
|
|
site_settings:
|
|
SiteSetting.all_settings(
|
|
filter_names: params[:filter_names],
|
|
filter_area: params[:filter_area],
|
|
include_locale_setting: false,
|
|
include_hidden: true,
|
|
filter_allowed_hidden: ADMIN_CONFIG_AREA_ALLOWLISTED_HIDDEN_SETTINGS,
|
|
),
|
|
)
|
|
end
|
|
end
|