diff options
| author | Alban Peignier | 2017-12-29 10:51:00 +0100 |
|---|---|---|
| committer | Alban Peignier | 2017-12-29 11:16:58 +0100 |
| commit | a072b918f274fe902226ae4cc376b318e3881c5f (patch) | |
| tree | af8b7fdeaa8ecc7c3a020e609e5235fedee140f6 | |
| parent | 84874b0c001239211e18ff7eef2aff7e54721a0d (diff) | |
| download | chouette-core-a072b918f274fe902226ae4cc376b318e3881c5f.tar.bz2 | |
Validates import file extension with CarrierWave extension_whitelist. Refs #4762
| -rw-r--r-- | app/models/import.rb | 1 | ||||
| -rw-r--r-- | app/uploaders/import_uploader.rb | 6 | ||||
| -rw-r--r-- | spec/models/import_spec.rb | 5 |
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 |
