From 1eb2c59cce90c50f8ec862ee161a273525509c8f Mon Sep 17 00:00:00 2001 From: Benjamin Neff Date: Tue, 9 Nov 2021 01:10:31 +0100 Subject: [PATCH] Move extension logic to SecureUploader class --- app/uploaders/exported_photos.rb | 6 +----- app/uploaders/exported_user.rb | 6 +----- app/uploaders/secure_uploader.rb | 4 ++++ spec/models/user_spec.rb | 7 ++++--- 4 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/uploaders/exported_photos.rb b/app/uploaders/exported_photos.rb index 724e65ef4..09d2490b2 100644 --- a/app/uploaders/exported_photos.rb +++ b/app/uploaders/exported_photos.rb @@ -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 diff --git a/app/uploaders/exported_user.rb b/app/uploaders/exported_user.rb index 2f707eb8c..83f6a1f31 100644 --- a/app/uploaders/exported_user.rb +++ b/app/uploaders/exported_user.rb @@ -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 diff --git a/app/uploaders/secure_uploader.rb b/app/uploaders/secure_uploader.rb index 963c047c1..486c70e0a 100644 --- a/app/uploaders/secure_uploader.rb +++ b/app/uploaders/secure_uploader.rb @@ -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)) diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 268538209..5e0fbf0c6 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -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