Package: collective.clamav
A product providing clamav antivirus integration for Plone sites with AT and Dexterity content types.
It does that by defining a validator which could be used with any content
type that uses File, Image or Named field(s). The open-sourceClam Antivirusis
supported which is available for all platforms.UsageTo start, you need to haveclamdrunning on some host accessible by your instances.collective.clamavsupports either UNIX socket connections or remote connections.Install collective.clamav and setup the host & port or the path to theclamdsocket in the control panel (default is a network connection toclamdlistening onlocalhostat port 3310). By defaultFilesandImagesare going to be checked for viruses when added or updated.Adding anti-virus protection to non-ATFile based contentIf you want to add anti-virus protection to your custom AT content types
add theisVirusFreevalidator to your FileField(s). For instance:FileField('file',
  validators = (('isNonEmptyFile', V_REQUIRED),
                ('isVirusFree', V_REQUIRED),),
  widget = FileWidget(label=u'File'),
)If you create custom Dexterity content types add only the necessary import statement to the
module and all plone.namedfile fields were automatically scaned:from Products.validation import V_REQUIRED)InstallationInstall collective.clamav by adding it to your buildout:[buildout]

...

eggs =
    collective.clamavand then runningbin/buildoutContributeIssue Tracker:https://github.com/collective/collective.clamav/issuesSource Code:https://github.com/collective/collective.clamavDocumentation: in the docs folderCreditsSome code was shamelessly borrowed frompyClamdand collective.ATClamAV:Clam Antivirus:http://www.clamav.netgithub:https://github.com/ggozad/collective.ATClamAVpyClamd:http://xael.org/norman/python/pyclamdgithub:https://github.com/collective.ATClamAVgithub:https://github.com/davisagli/collective.ATClamAVSupportIf you are having issues, please let us know.LicenseThe project is licensed under the GPLv2.ContributorsAndreas Mantke,maand@gmx.de[andreasma]Laurent Lasudry,laurent.lasudry@affinitic.be[laulaz]Thomas Grainger,tagrain@gmail.com[graingert]Yiorgis Gozadinos,ggozadinos@gmail.com[ggozad]Hanno Schlichting,hanno@hannosch.eu[hannosch]David Glick,david@glicksoftware.com[davisagli]Víctor Fernández de Alba,sneridagh@gmail.com[sneridagh]Changelog3.0.0 (2021-01-25)Remove the AT schema extension and make it work within Plone 5.2
and Python 3. [Andreas Mantke]Increase the release number to 3 because it breaks compatibility
to old Archetypes content types. [Andreas Mantke]Added a test for value NOT_CHANGED to the validator module because
of a change in converter.py of plone.formwidget.namedfile [Andreas Mantke]isort and flake8 fixes in validator module [Andreas Mantke]Fix tests for Plone 5.2, discontinue Travis and switch to Github Actions
[tschorr]2.0a2 (2016-09-12)Fix ReST/pypi page syntax.
[timo]2.0a1 (2016-09-12)Initial release based on collective.ATClamAV with a new controlpanel module
and and a configuration configlet for Plone 5 compatibility. The product
and release works with Dexterity content types. [andreasma]Complete Plone 5 compatibility and transferring and adapting tests from
collective.ATClamAV.
[sneridagh]