mirror of
https://github.com/discourse/discourse.git
synced 2024-12-13 03:13:41 +08:00
7577231ba2
A new setting attribute is used to define the areas (separated by `|`). In addition, endpoint `/admin/config/site_settings.json` accepts new `filter_area` data.
31 lines
1007 B
Ruby
31 lines
1007 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
|