2019-05-03 06:17:27 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2013-02-06 03:16:51 +08:00
|
|
|
class Admin::SiteSettingsController < Admin::AdminController
|
2017-08-07 09:43:09 +08:00
|
|
|
rescue_from Discourse::InvalidParameters do |e|
|
|
|
|
render_json_error e.message, status: 422
|
|
|
|
end
|
2013-02-06 03:16:51 +08:00
|
|
|
|
|
|
|
def index
|
2015-03-03 01:12:19 +08:00
|
|
|
render_json_dump(site_settings: SiteSetting.all_settings, diags: SiteSetting.diags)
|
2013-02-06 03:16:51 +08:00
|
|
|
end
|
|
|
|
|
2013-02-07 23:45:24 +08:00
|
|
|
def update
|
2014-01-06 20:03:53 +08:00
|
|
|
params.require(:id)
|
|
|
|
id = params[:id]
|
|
|
|
value = params[id]
|
2014-04-08 16:59:48 +08:00
|
|
|
value.strip! if value.is_a?(String)
|
2017-08-07 09:43:09 +08:00
|
|
|
raise_access_hidden_setting(id)
|
2018-11-14 15:03:02 +08:00
|
|
|
|
|
|
|
if SiteSetting.type_supervisor.get_type(id) == :upload
|
2019-01-02 15:29:17 +08:00
|
|
|
value = Upload.find_by(url: value) || ''
|
2018-11-14 15:03:02 +08:00
|
|
|
end
|
|
|
|
|
2017-08-07 09:43:09 +08:00
|
|
|
SiteSetting.set_and_log(id, value, current_user)
|
2017-08-31 12:06:56 +08:00
|
|
|
render body: nil
|
2017-08-07 09:43:09 +08:00
|
|
|
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"
|
2014-06-10 03:17:36 +08:00
|
|
|
end
|
2013-02-07 23:45:24 +08:00
|
|
|
end
|
2013-02-06 03:16:51 +08:00
|
|
|
|
|
|
|
end
|