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
|
end
|
||||||
|
|
||||||
def filename
|
def filename
|
||||||
return if original_filename.blank?
|
"diaspora_#{model.username}_photos_#{secure_token}#{extension}"
|
||||||
|
|
||||||
filename_parts = original_filename.split(".")
|
|
||||||
extensions = filename_parts.join(".")
|
|
||||||
"#{model.username}_photos_#{secure_token}.#{extensions}" if original_filename.present?
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -14,10 +14,6 @@ class ExportedUser < SecureUploader
|
||||||
end
|
end
|
||||||
|
|
||||||
def filename
|
def filename
|
||||||
return if original_filename.blank?
|
"diaspora_#{model.username}_data_#{secure_token}#{extension}"
|
||||||
|
|
||||||
filename_parts = original_filename.split(".")
|
|
||||||
extensions = filename_parts.join(".")
|
|
||||||
"#{model.username}_data_#{secure_token}.#{extensions}"
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,10 @@
|
||||||
class SecureUploader < CarrierWave::Uploader::Base
|
class SecureUploader < CarrierWave::Uploader::Base
|
||||||
protected
|
protected
|
||||||
|
|
||||||
|
def extension
|
||||||
|
".#{original_filename.split('.').drop(1).join('.')}" if original_filename.present?
|
||||||
|
end
|
||||||
|
|
||||||
def secure_token(bytes=16)
|
def secure_token(bytes=16)
|
||||||
var = :"@#{mounted_as}_secure_token"
|
var = :"@#{mounted_as}_secure_token"
|
||||||
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.urlsafe_base64(bytes))
|
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
|
end
|
||||||
|
|
||||||
describe "#export" do
|
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)
|
user = FactoryBot.create(:user)
|
||||||
|
|
||||||
filename = user.export.filename
|
user.perform_export!
|
||||||
|
url = user.export.url
|
||||||
user.save!
|
user.save!
|
||||||
|
|
||||||
expect(User.find(user.id).export.filename).to eq(filename)
|
expect(User.find(user.id).export.url).to eq(url)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue