Move extension logic to SecureUploader class
This commit is contained in:
parent
6c4c6f8889
commit
1eb2c59cce
4 changed files with 10 additions and 13 deletions
|
|
@ -14,10 +14,6 @@ class ExportedPhotos < SecureUploader
|
|||
end
|
||||
|
||||
def filename
|
||||
return if original_filename.blank?
|
||||
|
||||
filename_parts = original_filename.split(".")
|
||||
extensions = filename_parts.join(".")
|
||||
"#{model.username}_photos_#{secure_token}.#{extensions}" if original_filename.present?
|
||||
"diaspora_#{model.username}_photos_#{secure_token}#{extension}"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -14,10 +14,6 @@ class ExportedUser < SecureUploader
|
|||
end
|
||||
|
||||
def filename
|
||||
return if original_filename.blank?
|
||||
|
||||
filename_parts = original_filename.split(".")
|
||||
extensions = filename_parts.join(".")
|
||||
"#{model.username}_data_#{secure_token}.#{extensions}"
|
||||
"diaspora_#{model.username}_data_#{secure_token}#{extension}"
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -3,6 +3,10 @@
|
|||
class SecureUploader < CarrierWave::Uploader::Base
|
||||
protected
|
||||
|
||||
def extension
|
||||
".#{original_filename.split('.').drop(1).join('.')}" if original_filename.present?
|
||||
end
|
||||
|
||||
def secure_token(bytes=16)
|
||||
var = :"@#{mounted_as}_secure_token"
|
||||
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.urlsafe_base64(bytes))
|
||||
|
|
|
|||
|
|
@ -976,13 +976,14 @@ describe User, type: :model do
|
|||
end
|
||||
|
||||
describe "#export" do
|
||||
it "doesn't change the filename when the user is saved" do
|
||||
it "doesn't change the url when the user is saved" do
|
||||
user = FactoryBot.create(:user)
|
||||
|
||||
filename = user.export.filename
|
||||
user.perform_export!
|
||||
url = user.export.url
|
||||
user.save!
|
||||
|
||||
expect(User.find(user.id).export.filename).to eq(filename)
|
||||
expect(User.find(user.id).export.url).to eq(url)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue