Show
Ignore:
Timestamp:
06/29/10 23:38:00 (23 months ago)
Author:
fs
Branch:
default
Message:

moved code for captcha injection in the controller so it can be shared

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trac_captcha/ticket.py

    r10 r16  
    2323# THE SOFTWARE. 
    2424 
    25 from genshi.builder import tag 
    2625from genshi.filters.transform import Transformer 
    2726from trac.core import Component, implements 
     
    2928from trac.web.api import ITemplateStreamFilter 
    3029 
    31 from trac_captcha.controller import initialize_captcha_data, TracCaptchaController 
     30from trac_captcha.controller import TracCaptchaController 
    3231 
    3332__all__ = ['TicketCaptcha'] 
     
    4140        if filename != 'ticket.html': 
    4241            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) 
    5244     
    5345    # --- ITicketManipulator --------------------------------------------------- 
     
    6153        return ((None, error_message),) 
    6254     
    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) 
    6955 
    7056