mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Add deprecation warnings for url based site settings.
This commit is contained in:
parent
44391ee8ab
commit
72370b9c36
@ -176,45 +176,45 @@ class SiteSetting < ActiveRecord::Base
|
|||||||
}.each { |client_setting| client_settings << client_setting }
|
}.each { |client_setting| client_settings << client_setting }
|
||||||
|
|
||||||
def self.site_logo_url
|
def self.site_logo_url
|
||||||
self.logo&.url || self.logo_url
|
self.logo&.url || self.logo_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_logo_small_url
|
def self.site_logo_small_url
|
||||||
self.logo_small&.url || self.logo_small_url
|
self.logo_small&.url || self.logo_small_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_digest_logo_url
|
def self.site_digest_logo_url
|
||||||
self.digest_logo&.url || self.digest_logo_url
|
self.digest_logo&.url || self.digest_logo_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_mobile_logo_url
|
def self.site_mobile_logo_url
|
||||||
self.mobile_logo&.url || self.mobile_logo_url
|
self.mobile_logo&.url || self.mobile_logo_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_large_icon_url
|
def self.site_large_icon_url
|
||||||
self.large_icon&.url || self.large_icon_url
|
self.large_icon&.url || self.large_icon_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_favicon_url
|
def self.site_favicon_url
|
||||||
self.favicon&.url || self.favicon_url
|
self.favicon&.url || self.favicon_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_apple_touch_icon_url
|
def self.site_apple_touch_icon_url
|
||||||
self.apple_touch_icon&.url || self.apple_touch_icon_url
|
self.apple_touch_icon&.url || self.apple_touch_icon_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.opengraph_image_url
|
def self.opengraph_image_url
|
||||||
self.opengraph_image&.url || self.default_opengraph_image_url
|
self.opengraph_image&.url || self.default_opengraph_image_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_twitter_summary_large_image_url
|
def self.site_twitter_summary_large_image_url
|
||||||
self.twitter_summary_large_image&.url ||
|
self.twitter_summary_large_image&.url ||
|
||||||
self.twitter_summary_large_image_url
|
self.twitter_summary_large_image_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.site_push_notifications_icon_url
|
def self.site_push_notifications_icon_url
|
||||||
SiteSetting.push_notifications_icon&.url ||
|
SiteSetting.push_notifications_icon&.url ||
|
||||||
SiteSetting.push_notifications_icon_url
|
SiteSetting.push_notifications_icon_url(warn: false)
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.shared_drafts_enabled?
|
def self.shared_drafts_enabled?
|
||||||
|
@ -2,22 +2,53 @@ module SiteSettings; end
|
|||||||
|
|
||||||
module SiteSettings::DeprecatedSettings
|
module SiteSettings::DeprecatedSettings
|
||||||
DEPRECATED_SETTINGS = [
|
DEPRECATED_SETTINGS = [
|
||||||
|
%w{logo_url logo 2.4},
|
||||||
|
%w{logo_small_url logo_small 2.4},
|
||||||
|
%w{digest_logo_url digest_logo 2.4},
|
||||||
|
%w{mobile_logo_url mobile_logo 2.4},
|
||||||
|
%w{large_icon_url large_icon 2.4},
|
||||||
|
%w{favicon_url favicon 2.4},
|
||||||
|
%w{apple_touch_icon_url apple_touch_icon 2.4},
|
||||||
|
%w{default_opengraph_image_url opengraph_image 2.4},
|
||||||
|
%w{twitter_summary_large_image_url twitter_summary_large_image 2.4},
|
||||||
|
%w{push_notifications_icon_url push_notifications_icon 2.4}
|
||||||
]
|
]
|
||||||
|
|
||||||
def setup_deprecated_methods
|
def setup_deprecated_methods
|
||||||
DEPRECATED_SETTINGS.each do |old_setting, new_setting, version|
|
DEPRECATED_SETTINGS.each do |old_setting, new_setting, version|
|
||||||
define_singleton_method old_setting do
|
define_singleton_method old_setting do |warn: true|
|
||||||
logger.warn("`SiteSetting.#{old_setting}` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting.#{new_setting}` instead")
|
if warn
|
||||||
|
logger.warn(
|
||||||
|
"`SiteSetting.#{old_setting}` has been deprecated and will be " +
|
||||||
|
"removed in the #{version} Release. Please use " +
|
||||||
|
"`SiteSetting.#{new_setting}` instead"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
self.public_send new_setting
|
self.public_send new_setting
|
||||||
end
|
end
|
||||||
|
|
||||||
define_singleton_method "#{old_setting}?" do
|
define_singleton_method "#{old_setting}?" do |warn: true|
|
||||||
logger.warn("`SiteSetting.#{old_setting}?` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting.#{new_setting}?` instead")
|
if warn
|
||||||
|
logger.warn(
|
||||||
|
"`SiteSetting.#{old_setting}?` has been deprecated and will be " +
|
||||||
|
"removed in the #{version} Release. Please use " +
|
||||||
|
"`SiteSetting.#{new_setting}?` instead"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
self.public_send "#{new_setting}?"
|
self.public_send "#{new_setting}?"
|
||||||
end
|
end
|
||||||
|
|
||||||
define_singleton_method "#{old_setting}=" do |val|
|
define_singleton_method "#{old_setting}=" do |val, warn: true|
|
||||||
logger.warn("`SiteSetting.#{old_setting}=` has been deprecated and will be removed in the #{version} Release. Please use `SiteSetting.#{new_setting}=` instead")
|
if warn
|
||||||
|
logger.warn(
|
||||||
|
"`SiteSetting.#{old_setting}=` has been deprecated and will be " +
|
||||||
|
"removed in the #{version} Release. Please use " +
|
||||||
|
"`SiteSetting.#{new_setting}=` instead"
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
self.public_send "#{new_setting}=", val
|
self.public_send "#{new_setting}=", val
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -153,6 +153,12 @@ describe SiteSetting do
|
|||||||
context 'deprecated site settings' do
|
context 'deprecated site settings' do
|
||||||
before do
|
before do
|
||||||
SiteSetting.force_https = true
|
SiteSetting.force_https = true
|
||||||
|
@orig_logger = Rails.logger
|
||||||
|
Rails.logger = @fake_logger = FakeLogger.new
|
||||||
|
end
|
||||||
|
|
||||||
|
after do
|
||||||
|
Rails.logger = @orig_logger
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'should act as a proxy to the new methods' do
|
it 'should act as a proxy to the new methods' do
|
||||||
@ -163,8 +169,14 @@ describe SiteSetting do
|
|||||||
|
|
||||||
SiteSetting.setup_deprecated_methods
|
SiteSetting.setup_deprecated_methods
|
||||||
|
|
||||||
expect(SiteSetting.use_https).to eq(true)
|
expect do
|
||||||
expect(SiteSetting.use_https?).to eq(true)
|
expect(SiteSetting.use_https).to eq(true)
|
||||||
|
expect(SiteSetting.use_https?).to eq(true)
|
||||||
|
end.to change { @fake_logger.warnings.count }.by(2)
|
||||||
|
|
||||||
|
expect do
|
||||||
|
expect(SiteSetting.use_https(warn: false))
|
||||||
|
end.to_not change { @fake_logger.warnings }
|
||||||
|
|
||||||
SiteSetting.use_https = false
|
SiteSetting.use_https = false
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user