Browse Source

Improvements to image upload validation and creation (#10431)

* Check if image value is nil? before creating an image

Check if uploaded images aren't nil before creating SiteUpload models
for them.

* Validate presence of file in SiteUpload

* Fix file presence validation

* Fabricate SiteUpload#file

* Add link to Creative Commons license
master
slice 5 years ago
committed by Eugen Rochko
parent
commit
85973f4f37
5 changed files with 9 additions and 1 deletions
  1. +1
    -1
      app/models/form/admin_settings.rb
  2. +1
    -0
      app/models/site_upload.rb
  3. +6
    -0
      spec/fabricators/assets/TEAPOT
  4. BIN
      spec/fabricators/assets/utah_teapot.png
  5. +1
    -0
      spec/fabricators/site_upload_fabricator.rb

+ 1
- 1
app/models/form/admin_settings.rb View File

@@ -67,7 +67,7 @@ class Form::AdminSettings
KEYS.each do |key|
value = instance_variable_get("@#{key}")

if UPLOAD_KEYS.include?(key)
if UPLOAD_KEYS.include?(key) && !value.nil?
upload = SiteUpload.where(var: key).first_or_initialize(var: key)
upload.update(file: value)
else


+ 1
- 0
app/models/site_upload.rb View File

@@ -18,6 +18,7 @@ class SiteUpload < ApplicationRecord
has_attached_file :file

validates_attachment_content_type :file, content_type: /\Aimage\/.*\z/
validates :file, presence: true
validates :var, presence: true, uniqueness: true

before_save :set_meta


+ 6
- 0
spec/fabricators/assets/TEAPOT View File

@@ -0,0 +1,6 @@
This "Utah teapot" photograph is licensed under the Creative Commons
Attribution-Share Alike 3.0 Unported license:
https://creativecommons.org/licenses/by-sa/3.0/deed.en

Original source of work:
https://commons.wikimedia.org/wiki/File:Utah_teapot_simple_2.png

BIN
spec/fabricators/assets/utah_teapot.png View File

Before After
Width: 1024  |  Height: 678  |  Size: 242 KiB

+ 1
- 0
spec/fabricators/site_upload_fabricator.rb View File

@@ -1,2 +1,3 @@
Fabricator(:site_upload) do
file { File.open(File.join(Rails.root, 'spec', 'fabricators', 'assets', 'utah_teapot.png')) }
end

Loading…
Cancel
Save