about summary refs log tree commit diff
path: root/app/models/media_attachment.rb
diff options
context:
space:
mode:
authorPatrick Figel <patrick@figel.email>2017-04-29 00:18:32 +0200
committerEugen Rochko <eugen@zeonfederated.com>2017-04-29 00:18:32 +0200
commit8ac7fca5d06b776cc09127f9c6a9018e9acade5b (patch)
treeadb3c38b5908c6fc26014da208ef391ff97fdf66 /app/models/media_attachment.rb
parenta823509b99eb428b1f68ed89594b88f48546253a (diff)
Set correct attachment type for rejected media (#2599)
In #2110, a new attachment type "unknown" was introduced for
attachments that were rejected due to a domain being blocked using
reject_media. However, the "type" field was never set to "unknown"
because a default value of "0" (image) is set for that column,
causing the `type.blank?` expression to always equal false.

This version uses type_changed? instead, causing the type to be set
to "unknown" unless a type has been explicitly set. This introduces
a small change in behaviour causing the type to be set to unknown
before paperclip calls `before_post_process`. Presumably this
behaviour is more appropriate than the current one because the
attachment type has not been determined by that point.

Included are new tests for `ProcessFeedService` and
`UpdateRemoteProfileService` which now check that remote media is
downloaded for non-blocked domains and is rejected for others.
Diffstat (limited to 'app/models/media_attachment.rb')
-rw-r--r--app/models/media_attachment.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index aae896d20..2ebddcb69 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -96,7 +96,7 @@ class MediaAttachment < ApplicationRecord
   private
 
   def set_shortcode
-    self.type = :unknown if file.blank? && type.blank?
+    self.type = :unknown if file.blank? && !type_changed?
 
     return unless local?