Changeset 16:bb9f1fb34a32 for trac_captcha/ticket.py
- Timestamp:
- 06/29/10 23:38:00 (23 months ago)
- Branch:
- default
- Files:
-
- 1 modified
-
trac_captcha/ticket.py (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trac_captcha/ticket.py
r10 r16 23 23 # THE SOFTWARE. 24 24 25 from genshi.builder import tag26 25 from genshi.filters.transform import Transformer 27 26 from trac.core import Component, implements … … 29 28 from trac.web.api import ITemplateStreamFilter 30 29 31 from trac_captcha.controller import initialize_captcha_data,TracCaptchaController30 from trac_captcha.controller import TracCaptchaController 32 31 33 32 __all__ = ['TicketCaptcha'] … … 41 40 if filename != 'ticket.html': 42 41 return stream 43 initialize_captcha_data(req) 44 controller = TracCaptchaController(self.env) 45 if 'token' in req.captcha_data: 46 return stream | self.captcha_token_tag(req) 47 if controller.should_skip_captcha(req): 48 return stream 49 50 captcha = controller.genshi_stream(req) 51 return stream | Transformer('//div[@class="buttons"]').before(captcha) 42 transformer = Transformer('//div[@class="buttons"]') 43 return TracCaptchaController(self.env).inject_captcha_into_stream(req, stream, transformer) 52 44 53 45 # --- ITicketManipulator --------------------------------------------------- … … 61 53 return ((None, error_message),) 62 54 63 # --- private API ----------------------------------------------------------64 65 def captcha_token_tag(self, req):66 token = req.captcha_data['token']67 input_tag = tag.input(type='hidden', name='__captcha_token', value=token)68 return Transformer('//div[@class="buttons"]').before(input_tag)69 55 70 56
