aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlban Peignier2017-12-29 10:51:00 +0100
committerAlban Peignier2017-12-29 11:16:58 +0100
commita072b918f274fe902226ae4cc376b318e3881c5f (patch)
treeaf8b7fdeaa8ecc7c3a020e609e5235fedee140f6
parent84874b0c001239211e18ff7eef2aff7e54721a0d (diff)
downloadchouette-core-a072b918f274fe902226ae4cc376b318e3881c5f.tar.bz2
Validates import file extension with CarrierWave extension_whitelist. Refs #4762
-rw-r--r--app/models/import.rb1
-rw-r--r--app/uploaders/import_uploader.rb6
-rw-r--r--spec/models/import_spec.rb5
3 files changed, 6 insertions, 6 deletions
diff --git a/app/models/import.rb b/app/models/import.rb
index 19e835986..049a65f40 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -19,7 +19,6 @@ class Import < ActiveRecord::Base
validates :name, presence: true
validates :file, presence: true
validates_presence_of :workbench, :creator
- validates_format_of :file, with: %r{\.zip\z}i, message: I18n.t('activerecord.errors.models.import.attributes.file.wrong_file_extension')
before_create :initialize_fields
diff --git a/app/uploaders/import_uploader.rb b/app/uploaders/import_uploader.rb
index 2740393ca..60e17ca0f 100644
--- a/app/uploaders/import_uploader.rb
+++ b/app/uploaders/import_uploader.rb
@@ -36,9 +36,9 @@ 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(jpg jpeg gif png)
- # end
+ def extension_whitelist
+ %w(zip)
+ end
# Override the filename of the uploaded files:
# Avoid using model.id or version_name here, see uploader/store.rb for details.
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index 3e4128865..ffb2360c2 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -10,8 +10,9 @@ RSpec.describe Import, type: :model do
it { should validate_presence_of(:workbench) }
it { should validate_presence_of(:creator) }
- it { should allow_value('file.zip').for(:file).with_message(I18n.t('activerecord.errors.models.import.attributes.file.wrong_file_extension')) }
- it { should_not allow_values('file.json', 'file.png', 'file.pdf').for(:file) }
+ include ActionDispatch::TestProcess
+ it { should allow_value(fixture_file_upload('OFFRE_TRANSDEV_2017030112251.zip')).for(:file) }
+ 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