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

Last change on this file since 1 was 1, checked in by myroslav, 18 years ago

Building directory structure

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