Sha256: 27cfaad2c1468a269291b63147d45cae619429f1b1ada336ca085f01db6862dd
Contents?: true
Size: 891 Bytes
Versions: 14
Compression:
Stored size: 891 Bytes
Contents
module Sufia module GenericFile module VirusCheck extend ActiveSupport::Concern included do validate :detect_viruses end # Default behavior is to raise a validation error and halt the save if a virus is found def detect_viruses return unless content.changed? Sufia::GenericFile::Actor.virus_check(local_path_for_content) true rescue Sufia::VirusFoundError => virus logger.warn(virus.message) errors.add(:base, virus.message) false end private def local_path_for_content if content.content.respond_to?(:path) content.content.path else Tempfile.open('') do |t| t.binmode t.write(content.content) t.close t.path end end end end end end
Version data entries
14 entries across 14 versions & 2 rubygems