Sha256: 48f2b13bb1e338e59f6a53971df114392bca5832055cb89544309d45cfa0f6f6

Contents?: true

Size: 866 Bytes

Versions: 16

Compression:

Stored size: 866 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?
        path = 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
        Sufia::GenericFile::Actions.virus_check(path)
        true
      rescue Sufia::VirusFoundError => virus
        logger.warn(virus.message)
        errors.add(:content, virus.message)
        false
      end

    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
sufia-4.0.0.beta2 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-4.0.0.beta2 lib/sufia/models/generic_file/virus_check.rb
sufia-4.0.0.beta1 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-4.0.0.beta1 lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.7.2 lib/sufia/models/generic_file/virus_check.rb
sufia-3.7.2 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.7.1 lib/sufia/models/generic_file/virus_check.rb
sufia-3.7.1 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.7.0 lib/sufia/models/generic_file/virus_check.rb
sufia-3.7.0 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-3.6.1 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.6.1 lib/sufia/models/generic_file/virus_check.rb
sufia-3.6.0 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.6.0 lib/sufia/models/generic_file/virus_check.rb
sufia-3.5.0 sufia-models/lib/sufia/models/generic_file/virus_check.rb
sufia-models-3.5.0 lib/sufia/models/generic_file/virus_check.rb