demarches-normaliennes/app/uploaders/procedure_logo_uploader.rb

50 lines
1.2 KiB
Ruby
Raw Normal View History

class ProcedureLogoUploader < BaseUploader
2016-05-24 18:35:25 +02:00
def root
2018-03-06 13:44:29 +01:00
Rails.root.join("public")
2016-05-24 18:35:25 +02:00
end
# Choose what kind of storage to use for this uploader:
2019-07-31 12:25:40 +02:00
if Rails.application.secrets.fog[:enabled]
storage :fog
else
storage :file
end
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
2019-07-31 12:25:40 +02:00
if !Rails.application.secrets.fog[:enabled]
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
# Add a white list of extensions which are allowed to be uploaded.
# For images you might use something like this:
def extension_whitelist
2018-10-01 13:55:12 +02:00
['jpg', 'jpeg', 'png']
end
def filename
if file.present?
if original_filename.present? || model.logo_secure_token
2019-07-31 12:25:40 +02:00
if Rails.application.secrets.fog[:enabled]
2019-02-25 14:52:52 +01:00
filename = "#{model.class.to_s.underscore}-#{secure_token}.#{file.extension&.downcase}"
else
2019-02-25 14:52:52 +01:00
filename = "logo-#{secure_token}.#{file.extension&.downcase}"
end
end
filename
end
end
private
def secure_token
model.logo_secure_token ||= generate_secure_token
end
def generate_secure_token
SecureRandom.uuid
end
end