aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/export/base.rb4
-rw-r--r--app/models/import/base.rb4
-rw-r--r--app/uploaders/import_uploader.rb2
-rw-r--r--spec/models/import/import_spec.rb2
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