diff options
| -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 | 
