Move extension logic to SecureUploader class

This commit is contained in:
Benjamin Neff 2021-11-09 01:10:31 +01:00
parent 6c4c6f8889
commit 1eb2c59cce
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
4 changed files with 10 additions and 13 deletions

View file

@ -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

View file

@ -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

View file

@ -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))

View file

@ -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