source: products/quintagroup.plonecaptchas/trunk/quintagroup/plonecaptchas/skins/plone_captchas/static/captcha_validator.vpy @ 1542

Last change on this file since 1542 was 850, checked in by crchemist, 17 years ago

Replaced Creator() of document to getOwnerTuple().

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