about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrea Faulds <ajf@ajf.me>2016-11-23 21:00:00 +0000
committerAndrea Faulds <ajf@ajf.me>2016-11-23 21:03:03 +0000
commit7161f91313b51c8425bd184dc5374084fd4e68a8 (patch)
tree5e08825a2279d827b62ae0e7f6481b7746c2d03f
parent3373ae02ded0ac5847350da9f9550721cdebe732 (diff)
Rename media to avoid exposing filename (fixes #207)
-rw-r--r--app/controllers/api/v1/media_controller.rb5
-rw-r--r--app/controllers/settings/profiles_controller.rb13
2 files changed, 16 insertions, 2 deletions
diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb
index bb8e8d9ee..23cc9bb7c 100644
--- a/app/controllers/api/v1/media_controller.rb
+++ b/app/controllers/api/v1/media_controller.rb
@@ -7,7 +7,10 @@ class Api::V1::MediaController < ApiController
   respond_to :json
 
   def create
-    @media = MediaAttachment.create!(account: current_user.account, file: params[:file])
+    file = params[:file]
+    # Change so Paperclip won't expose the actual filename
+    file.original_filename = "media" + File.extname(file.original_filename)
+    @media = MediaAttachment.create!(account: current_user.account, file: file)
   rescue Paperclip::Errors::NotIdentifiedByImageMagickError
     render json: { error: 'File type of uploaded media could not be verified' }, status: 422
   rescue Paperclip::Error
diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb
index 4b2b5a131..9d9c0bb72 100644
--- a/app/controllers/settings/profiles_controller.rb
+++ b/app/controllers/settings/profiles_controller.rb
@@ -20,7 +20,18 @@ class Settings::ProfilesController < ApplicationController
   private
 
   def account_params
-    params.require(:account).permit(:display_name, :note, :avatar, :header, :silenced)
+    p = params.require(:account).permit(:display_name, :note, :avatar, :header, :silenced)
+    if p[:avatar]
+        avatar = p[:avatar]
+        # Change so Paperclip won't expose the actual filename
+        avatar.original_filename = "media" + File.extname(avatar.original_filename)
+    end
+    if p[:header]
+        header = p[:header]
+        # Change so Paperclip won't expose the actual filename
+        header.original_filename = "media" + File.extname(header.original_filename)
+    end
+    p
   end
 
   def set_account