mirror of
https://github.com/discourse/discourse.git
synced 2024-12-18 14:04:17 +08:00
468a8fcd20
This change-set allows setting different defaults for different locales. It also: - Adds extensive testing around site setting validation - raises deprecation error if site setting has the default property based on env - relocated site settings for dev and tests in the initializer - deprecated client_setting in the site setting's loading process - ensure it raises when a enum site setting being set - default_locale is promoted to `required` category. - fixes incorrect default setting and validation - fixes ensure type check for site settings - creates a benchmark for site setting - sets reasonable defaults for Chinese
30 lines
796 B
Ruby
30 lines
796 B
Ruby
class Admin::SiteSettingsController < Admin::AdminController
|
|
rescue_from Discourse::InvalidParameters do |e|
|
|
render_json_error e.message, status: 422
|
|
end
|
|
|
|
def index
|
|
render_json_dump(site_settings: SiteSetting.all_settings, diags: SiteSetting.diags)
|
|
end
|
|
|
|
def update
|
|
params.require(:id)
|
|
id = params[:id]
|
|
value = params[id]
|
|
value.strip! if value.is_a?(String)
|
|
raise_access_hidden_setting(id)
|
|
SiteSetting.set_and_log(id, value, current_user)
|
|
render nothing: true
|
|
end
|
|
|
|
private
|
|
|
|
def raise_access_hidden_setting(id)
|
|
# note, as of Ruby 2.3 symbols are GC'd so this is considered safe
|
|
if SiteSetting.hidden_settings.include?(id.to_sym)
|
|
raise Discourse::InvalidParameters, "You are not allowed to change hidden settings"
|
|
end
|
|
end
|
|
|
|
end
|