FIX: Ensure file size restriction types are ints (#24947)
Settings that are using the new `file_size_restriction` types like the
`max_image_size_kb` setting need to have their values saved as integers.
This was a recent regression in 00209f03e6
that caused these values to be saved as strings.
This change also removes negatives from the validation regex because
file sizes can't be negative anyways.
Bug report: https://meta.discourse.org/t/289037
This commit is contained in:
parent
1f9e6425c6
commit
a08691a599
|
@ -35,7 +35,7 @@ class Admin::SiteSettingsController < Admin::AdminController
|
|||
when :integer
|
||||
value = value.tr("^-0-9", "")
|
||||
when :file_size_restriction
|
||||
value = value.tr("^-0-9", "")
|
||||
value = value.tr("^0-9", "").to_i
|
||||
when :uploaded_image_list
|
||||
value = Upload.get_from_urls(value.split("|")).to_a
|
||||
end
|
||||
|
|
|
@ -59,7 +59,7 @@ class Topic < ActiveRecord::Base
|
|||
|
||||
def thumbnail_info(enqueue_if_missing: false, extra_sizes: [])
|
||||
return nil unless original = image_upload
|
||||
return nil if original.filesize >= SiteSetting.max_image_size_kb.kilobytes
|
||||
return nil if original.filesize >= SiteSetting.max_image_size_kb.to_i.kilobytes
|
||||
return nil unless original.read_attribute(:width) && original.read_attribute(:height)
|
||||
|
||||
infos = []
|
||||
|
|
|
@ -276,6 +276,13 @@ RSpec.describe Admin::SiteSettingsController do
|
|||
expect(SiteSetting.suggested_topics).to eq(1000)
|
||||
end
|
||||
|
||||
it "sanitizes file_size_restriction values" do
|
||||
put "/admin/site_settings/max_image_size_kb.json", params: { max_image_size_kb: "4096" }
|
||||
|
||||
expect(response.status).to eq(200)
|
||||
expect(SiteSetting.max_image_size_kb).to eq(4096)
|
||||
end
|
||||
|
||||
it "sanitizes negative integer values correctly" do
|
||||
put "/admin/site_settings/pending_users_reminder_delay_minutes.json",
|
||||
params: {
|
||||
|
|
Loading…
Reference in New Issue