source: products/quintagroup.pfg.captcha/trunk/quintagroup/pfg/captcha/validator.py @ 2737

Last change on this file since 2737 was 2737, checked in by mylan, 14 years ago

Merged revisions 3750,3767-3774 via svnmerge from
http://svn.quintagroup.com/products/quintagroup.pfg.captcha/branches/migration

........

r3750 | mylan | 2010-07-20 23:44:36 +0300 (Tue, 20 Jul 2010) | 1 line


#222: Added basic structure of migration Product to Package

........

r3767 | mylan | 2010-08-09 20:59:55 +0300 (Mon, 09 Aug 2010) | 1 line


Fix validator registration breakage

........

r3768 | mylan | 2010-08-09 21:07:08 +0300 (Mon, 09 Aug 2010) | 1 line


#222: Added migratioin old Products.qPloneCaptchaField to quintagroup.pfg.captcha fields

........

r3769 | mylan | 2010-08-10 12:19:58 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Fix typo

........

r3770 | mylan | 2010-08-10 12:59:59 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Move installation quintagroup.pfg.captcha with dependecies from global setupPloneSite to TestCase? classes

........

r3771 | mylan | 2010-08-10 14:09:48 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Splited tests.py module into 2 layers with notinstalled and installed quintagroup.pfg.captcha packages

........

r3772 | mylan | 2010-08-10 17:43:03 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Fix uninstallation 'old' packages when second run quintagroup.pfg.captcha installation

........

r3773 | mylan | 2010-08-10 17:43:54 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Added test for migration from old qPloneCaptchaField to new quintagroup.pfg.captcha

........

r3774 | mylan | 2010-08-10 18:03:41 +0300 (Tue, 10 Aug 2010) | 1 line


#222: Prepare to 1.0.1 release

........

  • Property svn:eol-style set to native
File size: 939 bytes
Line 
1from Products.CMFCore.utils import getToolByName
2from Products.validation import validation
3from Products.validation.interfaces.IValidator import IValidator
4from zope.interface import implements
5
6from Products.CMFPlone.utils import safe_hasattr
7
8class CaptchaValidator:
9
10    __implements__ = (IValidator,)
11
12    name = 'CaptchaValidator'
13    title = ""
14    description = ""
15
16    def __init__(self, name, title='', description=''):
17        self.name = name
18        self.title = title or name
19        self.description = description
20
21    def __call__(self, value, *args, **kwargs):
22
23        form  = kwargs.get('instance')
24        portal = getToolByName(form, 'portal_url').getPortalObject()
25        result = portal.captcha_validator()
26        if result.status == 'failure':
27            return ("%(problem)s" % {'problem' : result.errors['key'][0]})
28        else:
29            return 1
30
31validation.register(CaptchaValidator('isCaptchaCorrect'))
Note: See TracBrowser for help on using the repository browser.