From 8ac7fca5d06b776cc09127f9c6a9018e9acade5b Mon Sep 17 00:00:00 2001
From: Patrick Figel <patrick@figel.email>
Date: Sat, 29 Apr 2017 00:18:32 +0200
Subject: 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.
---
 app/models/media_attachment.rb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'app/models')

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?
 
-- 
cgit