| 45 | | karma_lifetime = IntOption('spam-filter', 'captcha_karma_lifetime', 86400, |
| 46 | | """Time in seconds that a successful CAPTCHA response increases |
| | 49 | # karma_lifetime = IntOption('spam-filter', 'captcha_karma_lifetime', 86400, |
| | 50 | karma_lifetime = IntOption('spam-filter', 'captcha_karma_lifetime', 30, |
| | 51 | """Time in seconds that a successful CAPTCHA response increases |
| | 106 | def pre_process_request(self, req, handler): |
| | 107 | self.env.log.warn(u"F PATH %s METHOD %s handler %s", req.path_info, req.method, handler) |
| | 108 | #for key, value in req.session.iteritems(): |
| | 109 | # self.log.info('F Session "%s" = "%s"', key, value) |
| | 110 | #for key, value in req.args.iteritems(): |
| | 111 | # self.log.info('F Args "%s" = "%s"', key, value) |
| | 112 | if(req.path_info == '/captcha' and req.method == 'POST' and |
| | 113 | req.args['captcha_response'] == req.session['captcha_expected']): |
| | 114 | handlers = ExtensionPoint(IRequestHandler) |
| | 115 | req.environ['PATH_INFO'] = req.session.get('captcha_redirect', req.href()) |
| | 116 | for key, value in req.session.iteritems(): |
| | 117 | self.log.info('F Found "%s" = "%s" in req.session', key, value) |
| | 118 | if key.startswith('captcha_arg_'): |
| | 119 | arg = key[12:] |
| | 120 | req.args[arg] = value |
| | 121 | self.log.info('F Found and set arg "%s"', arg) |
| | 122 | keys = req.session.keys() |
| | 123 | for key in keys: |
| | 124 | if key.startswith('captcha_arg_'): |
| | 125 | self.log.info('F Delete req.session "%s"', key) |
| | 126 | del req.session[key] |
| | 127 | req.session.save() |
| | 128 | self.env.log.warn(u"F Captcha %s", req.path_info) |
| | 129 | try: |
| | 130 | for newhandler in self.handlers: |
| | 131 | self.log.info('F Handler "%s"', newhandler) |
| | 132 | if newhandler.match_request(req): |
| | 133 | self.log.info('F Match') |
| | 134 | handler = newhandler |
| | 135 | del req.session['captcha_redirect'] |
| | 136 | del req.session['captcha_expected'] |
| | 137 | del req.session['captcha_reject_reason'] |
| | 138 | req.session['captcha_verified'] = int(time.time()) |
| | 139 | break |
| | 140 | except TracError, e: |
| | 141 | return (handler) |
| | 142 | return (handler) |
| | 143 | |
| | 144 | def post_process_request(self, req, template, content_type): |
| | 145 | return (template, content_type) |
| | 146 | |
| | 147 | def post_process_request(self, req, template, data, content_type): |
| | 148 | return (template, data, content_type) |
| | 149 | |
| | 150 | |