Merge pull request #5107 from gschlager/phpbb3

phpBB3 importer: Fix validation of site settings
This commit is contained in:
Jeff Atwood 2017-08-28 16:52:50 -07:00 committed by GitHub
commit 77a4968272
2 changed files with 5 additions and 23 deletions

1
.gitignore vendored
View File

@ -44,6 +44,7 @@ config/discourse.conf
/logfile /logfile
log/ log/
bootsnap-load-path-cache bootsnap-load-path-cache
bootsnap-compile-cache/
# Ignore plugins except for the bundled ones. # Ignore plugins except for the bundled ones.
/plugins/* /plugins/*

View File

@ -34,32 +34,9 @@ module ImportScripts::PhpBB3
end end
def change_site_settings def change_site_settings
# let's make sure that we import all attachments no matter how big they are
setting_keys = [:max_image_size_kb, :max_attachment_size_kb]
original_validators = disable_setting_validators(setting_keys)
super super
@importers.permalink_importer.change_site_settings @importers.permalink_importer.change_site_settings
enable_setting_validators(original_validators)
end
def disable_setting_validators(setting_keys)
original_validators = {}
setting_keys.each do |key|
original_validators[key] = SiteSetting.validators[key]
SiteSetting.validators[key] = nil
end
original_validators
end
def enable_setting_validators(original_validators)
original_validators.each do |key, validator|
SiteSetting.validators[key] = validator
end
end end
def get_site_settings_for_import def get_site_settings_for_import
@ -69,6 +46,10 @@ module ImportScripts::PhpBB3
settings[:max_image_size_kb] = [max_file_size_kb, SiteSetting.max_image_size_kb].max settings[:max_image_size_kb] = [max_file_size_kb, SiteSetting.max_image_size_kb].max
settings[:max_attachment_size_kb] = [max_file_size_kb, SiteSetting.max_attachment_size_kb].max settings[:max_attachment_size_kb] = [max_file_size_kb, SiteSetting.max_attachment_size_kb].max
# temporarily disable validation since we want to import all existing images and attachments
SiteSetting.type_supervisor.load_setting(:max_image_size_kb, max: settings[:max_image_size_kb])
SiteSetting.type_supervisor.load_setting(:max_attachment_size_kb, max: settings[:max_attachment_size_kb])
settings settings
end end