Provides ClamAV antivirus integration for Archetypes based content types
collective.ATClamAV aims at providing antivirus integration to Plone sites. It does that by defining a validator that can be used with any content type that uses File or Image field(s). The open-source Clam Antivirus is supported which is available for all platforms.
To start, you need to have clamd running on some host accessible by your instances. collective.ATClamAV supports either UNIX socket connections or remote connections.
Install collective.ATClamAV and setup the host & port or the path to the clamd socket in the control panel (default is a network connection to clamd listening on localhost at port 3310). By default Files and Images are going to be checked for viruses when added or updated.
Adding anti-virus protection to non-ATFile based content
In order to add anti-virus protection to your custom content types you only need to add the isVirusFree validator to your FileField(s). For instance:
FileField('file', validators = (('isNonEmptyFile', V_REQUIRED), ('isVirusFree', V_REQUIRED),), widget = FileWidget(label=u'File'), )
By default tests mock clamd and do not require it being installed. If you want to test your clamd setup as well, run tests on all levels i.e.
using the provided buildout. Two plone.app.testing layers (with the mocker and without) are provided if you want to integrate the package in your own tests, see testing.py.
If you want to get involved with the development of collective.ATClamAV please use github to submit your patches/issues.
Some code was shamelessly borrowed from pyClamd.
1.2 - 2011-03-15
- Sent all data over the socket instead of only the first buffer. [hannosch]
- Added error logging for failed scans. [hannosch]
1.1 - 2011-02-15
- Disable virus validator during debug mode but log a warning. This allows local development to take place without having clamav installed. [hannosch]
1.0 - 2011-01-11
- Reengineering to support images. [hannosch]
- Improve coverage and use plone.app.testing. [ggozad]
- Plone 4 compatibility. [ggozad, hannosch]
- pep-8 [ggozad]
- Added support for local UNIX sockets [ggozad]
- Initial release [ggozad]