0
0
Fork 0

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.
This commit is contained in:
Patrick Figel 2017-04-29 00:18:32 +02:00 committed by Eugen Rochko
parent a823509b99
commit 8ac7fca5d0
3 changed files with 93 additions and 29 deletions

View file

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