diff options
| author | Zog | 2018-03-12 11:59:42 +0100 |
|---|---|---|
| committer | Zog | 2018-03-12 12:00:15 +0100 |
| commit | c5d5eef9f107008a29536321fa0ff56209620632 (patch) | |
| tree | 5faa64a1bfac1bda0152941cece46fc28279e06e | |
| parent | 02569d6d4ff391982ced4f12cd57b2f56bb499b2 (diff) | |
| download | chouette-core-6133-new-exports.tar.bz2 | |
Regs #6133; Define file's extensions whitelist on a per-class basis6133-new-exports
| -rw-r--r-- | app/models/export/base.rb | 4 | ||||
| -rw-r--r-- | app/models/import/base.rb | 4 | ||||
| -rw-r--r-- | app/uploaders/import_uploader.rb | 2 | ||||
| -rw-r--r-- | spec/models/import/import_spec.rb | 2 |
4 files changed, 10 insertions, 2 deletions
diff --git a/app/models/export/base.rb b/app/models/export/base.rb index 58a0ec22b..6085e0ffb 100644 --- a/app/models/export/base.rb +++ b/app/models/export/base.rb @@ -15,6 +15,10 @@ class Export::Base < ActiveRecord::Base I18n.t("export.#{self.name.demodulize.underscore}") end + def self.file_extension_whitelist + %w(zip csv json) + end + if Rails.env.development? def self.force_load_descendants path = Rails.root.join 'app/models/export' diff --git a/app/models/import/base.rb b/app/models/import/base.rb index 73d06d968..1dd9c4195 100644 --- a/app/models/import/base.rb +++ b/app/models/import/base.rb @@ -10,6 +10,10 @@ class Import::Base < ActiveRecord::Base "Import::Resource" end + def self.file_extension_whitelist + %w(zip) + end + include IevInterfaces::Task def self.model_name diff --git a/app/uploaders/import_uploader.rb b/app/uploaders/import_uploader.rb index 6ef52a984..3491768f6 100644 --- a/app/uploaders/import_uploader.rb +++ b/app/uploaders/import_uploader.rb @@ -37,7 +37,7 @@ class ImportUploader < CarrierWave::Uploader::Base # Add a white list of extensions which are allowed to be uploaded. # For images you might use something like this: def extension_whitelist - %w(zip csv json) + model.class.try(:file_extension_whitelist) || %w(zip) end # Override the filename of the uploaded files: diff --git a/spec/models/import/import_spec.rb b/spec/models/import/import_spec.rb index 6b9201129..c41d5ba53 100644 --- a/spec/models/import/import_spec.rb +++ b/spec/models/import/import_spec.rb @@ -12,7 +12,7 @@ RSpec.describe Import::Base, type: :model do include ActionDispatch::TestProcess it { should allow_value(fixture_file_upload('OFFRE_TRANSDEV_2017030112251.zip')).for(:file) } - it { should_not allow_value(fixture_file_upload('reflex_updated.xml')).for(:file).with_message(I18n.t('errors.messages.extension_whitelist_error', extension: '"xml"', allowed_types: "zip, csv, json")) } + it { should_not allow_value(fixture_file_upload('users.json')).for(:file).with_message(I18n.t('errors.messages.extension_whitelist_error', extension: '"json"', allowed_types: "zip")) } let(:workbench_import) {netex_import.parent} let(:workbench_import_with_completed_steps) do |
