Sha256: 066537aabd530596fb884fe1fb82896889da823e1fe060870fe23a4c16be2f36
Contents?: true
Size: 1.25 KB
Versions: 2
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true module Decidim # This class deals with uploading hero images to ParticipatoryProcesses. class ImageUploader < ApplicationUploader include CarrierWave::MiniMagick process :validate_size, :validate_dimensions # CarrierWave automatically calls this method and validates the content # type fo the temp file to match against any of these options. def content_type_whitelist [ %r{image\/} ] end # A simple check to avoid DoS with maliciously crafted images, or just to # avoid reckless users that upload gigapixels images. # # See https://hackerone.com/reports/390 def validate_dimensions manipulate! do |image| validation_error!(I18n.t("carrierwave.errors.image_too_big")) if image.dimensions.any? { |dimension| dimension > max_image_height_or_width } image end end def validate_size manipulate! do |image| validation_error!(I18n.t("carrierwave.errors.image_too_big")) if image.size > 10.megabytes image end end def max_image_height_or_width 8000 end private def validation_error!(text) model.errors.add(mounted_as, text) raise CarrierWave::IntegrityError, text end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-core-0.0.2 | app/uploaders/decidim/image_uploader.rb |
decidim-core-0.0.1 | app/uploaders/decidim/image_uploader.rb |