mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
FEATURE: improve handling of site setting secrets
This commit is contained in:
@@ -66,6 +66,10 @@ module SiteSettingExtension
|
||||
@previews ||= {}
|
||||
end
|
||||
|
||||
def secret_settings
|
||||
@secret_settings ||= []
|
||||
end
|
||||
|
||||
def setting(name_arg, default = nil, opts = {})
|
||||
name = name_arg.to_sym
|
||||
|
||||
@@ -106,6 +110,10 @@ module SiteSettingExtension
|
||||
previews[name] = opts[:preview]
|
||||
end
|
||||
|
||||
if opts[:secret]
|
||||
secret_settings << name
|
||||
end
|
||||
|
||||
type_supervisor.load_setting(
|
||||
name,
|
||||
opts.extract!(*SiteSettings::TypeSupervisor::CONSUMED_OPTS)
|
||||
@@ -149,7 +157,8 @@ module SiteSettingExtension
|
||||
default: defaults[s].to_s,
|
||||
value: value.to_s,
|
||||
category: categories[s],
|
||||
preview: previews[s]
|
||||
preview: previews[s],
|
||||
secret: secret_settings.include?(s)
|
||||
}.merge(type_supervisor.type_hash(s))
|
||||
|
||||
opts
|
||||
@@ -284,7 +293,7 @@ module SiteSettingExtension
|
||||
prev_value = send(name)
|
||||
set(name, value)
|
||||
if has_setting?(name)
|
||||
value = prev_value = "[FILTERED]" if name.to_s =~ /_secret/
|
||||
value = prev_value = "[FILTERED]" if secret_settings.include?(name.to_sym)
|
||||
StaffActionLogger.new(user).log_site_setting_change(name, prev_value, value)
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user