source: products/qPloneCaptchas/trunk/skins/plone_captchas/static/captcha_validator.vpy @ 1084

Last change on this file since 1084 was 1084, checked in by liebster, 15 years ago

Added support of Plone 3.2 version

  • Property svn:eol-style set to native
File size: 1.1 KB
Line 
1from DateTime import DateTime
2
3from Products.CMFCore.utils import getToolByName
4
5from Products.qPloneCaptchas import ProductMessageFactory as _
6from Products.qPloneCaptchas.utils import decrypt, parseKey, \
7     encrypt1, getWord
8
9if state.getStatus()=='failure':
10    return  state
11request = context.REQUEST
12
13test_key = request.get('key', '')
14hashkey = request.get('hashkey', '')
15decrypted_key = decrypt(context.captcha_key, hashkey)
16parsed_key = parseKey(decrypted_key)
17
18index = parsed_key['key']
19date = parsed_key['date']
20
21img = getattr(context, '%s.jpg' % index)
22solution = img.title
23enc = encrypt1(test_key)
24captcha_tool = getToolByName(context, 'portal_captchas')
25if (enc != solution) or (captcha_tool.has_key(decrypted_key)) \
26    or (DateTime().timeTime() - float(date)>3600):
27    message = _(u"Please re-enter validation code.")
28    context.plone_utils.addPortalMessage(message, 'error')
29    state.setError('key', message, 'key_required')
30    return state.set(status="failure")
31else:
32    captcha_tool.addExpiredKey(decrypted_key)
33    return state.set(status="success")
Note: See TracBrowser for help on using the repository browser.