about summary refs log tree commit diff
path: root/lib/paperclip/media_type_spoof_detector_extensions.rb
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2021-09-29 23:52:36 +0200
committerGitHub <noreply@github.com>2021-09-29 23:52:36 +0200
commitfc3ae1343df5adb83a3733958a4436981feb380f (patch)
treef320fbf9dbe402b668d12815a6e20070813c6b30 /lib/paperclip/media_type_spoof_detector_extensions.rb
parent0e4a4db141550843c4996880c7f6c00e54808d78 (diff)
Switch from unmaintained paperclip to kt-paperclip (#16724)
* Switch from unmaintained paperclip to kt-paperclip

* Drop some compatibility monkey-patches not required by kt-paperclip

* Drop media spoof check monkey-patching

It's broken with kt-paperclip and hopefully it won't be needed anymore

* Fix regression introduced by paperclip 6.1.0

* Do not rely on pathname to call FastImage

* Add test for ogg vorbis file with cover art

* Add audio/vorbis to the accepted content-types

This seems erroneous as this would be the content-type for a vorbis stream
without an ogg container, but that's what the `marcel` gem outputs, so…

* Restore missing for_as_default method

* Refactor Attachmentable concern and delay Paperclip's content-type spoof check

Check for content-type spoofing *after* setting the extension ourselves, this
fixes a regression with kt-paperclip's validations being more strict than
paperclip 6.0.0 and rejecting some Pleroma uploads because of unknown
extensions.

* Please CodeClimate

* Add audio/vorbis to the unreliable set

It doesn't correspond to a file format and thus has no extension associated.
Diffstat (limited to 'lib/paperclip/media_type_spoof_detector_extensions.rb')
-rw-r--r--lib/paperclip/media_type_spoof_detector_extensions.rb35
1 files changed, 0 insertions, 35 deletions
diff --git a/lib/paperclip/media_type_spoof_detector_extensions.rb b/lib/paperclip/media_type_spoof_detector_extensions.rb
deleted file mode 100644
index 43337cc68..000000000
--- a/lib/paperclip/media_type_spoof_detector_extensions.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-# frozen_string_literal: true
-
-module Paperclip
-  module MediaTypeSpoofDetectorExtensions
-    def mapping_override_mismatch?
-      !Array(mapped_content_type).include?(calculated_content_type) && !Array(mapped_content_type).include?(type_from_mime_magic)
-    end
-
-    def calculated_media_type_from_mime_magic
-      @calculated_media_type_from_mime_magic ||= type_from_mime_magic.split('/').first
-    end
-
-    def calculated_type_mismatch?
-      !media_types_from_name.include?(calculated_media_type) && !media_types_from_name.include?(calculated_media_type_from_mime_magic)
-    end
-
-    def type_from_mime_magic
-      @type_from_mime_magic ||= begin
-        begin
-          File.open(@file.path) do |file|
-            MimeMagic.by_magic(file)&.type || ''
-          end
-        rescue Errno::ENOENT
-          ''
-        end
-      end
-    end
-
-    def type_from_file_command
-      @type_from_file_command ||= FileCommandContentTypeDetector.new(@file.path).detect
-    end
-  end
-end
-
-Paperclip::MediaTypeSpoofDetector.prepend(Paperclip::MediaTypeSpoofDetectorExtensions)