Ejemplo n.º 1
0
 def __call__(self, func):
     def check_method(remainder, params):
         if request.method != 'POST':
             if self.redir is not None:
                 redirect(self.redir)
             raise exc.HTTPMethodNotAllowed(headers={'Allow':'POST'})
     before_validate(check_method)(func)
     return func
Ejemplo n.º 2
0
def vardec(fun):
    def vardec_hook(remainder, params):
        new_params = variable_decode(dict(
            (k, v) for k, v in params.items()
            if re_clean_vardec_key.match(k)))
        params.update(new_params)
    before_validate(vardec_hook)(fun)
    return fun
Ejemplo n.º 3
0
def vardec(fun):
    def vardec_hook(remainder, params):
        new_params = variable_decode(dict(
            (k, v) for k, v in params.items()
            if re_clean_vardec_key.match(k)))
        params.update(new_params)
    before_validate(vardec_hook)(fun)
    return fun
Ejemplo n.º 4
0
 def __call__(self, func):
     def check_method(remainder, params):
         if request.method != 'POST':
             if self.redir is not None:
                 redirect(self.redir)
             raise exc.HTTPMethodNotAllowed(headers={str('Allow'): str('POST')})
     before_validate(check_method)(func)
     return func
Ejemplo n.º 5
0
 def validate(cls, error_msg):
     '''Controller decorator to raise Invalid errors if bot protection is engaged'''
     def antispam_hook(remainder, params):
         '''Converts various errors in validate_request to a single Invalid message'''
         try:
             new_params = cls.validate_request(params=params)
             params.update(new_params)
         except (ValueError, TypeError, binascii.Error):
             raise Invalid(error_msg, params, None)
     return before_validate(antispam_hook)
Ejemplo n.º 6
0
 def validate(cls, error_msg):
     '''Controller decorator to raise Invalid errors if bot protection is engaged'''
     def antispam_hook(remainder, params):
         '''Converts various errors in validate_request to a single Invalid message'''
         try:
             new_params = cls.validate_request(params=params)
             params.update(new_params)
         except (ValueError, TypeError, binascii.Error):
             raise Invalid(error_msg, params, None)
     return before_validate(antispam_hook)
Ejemplo n.º 7
0
 def validate(cls, error_msg):
     '''Controller decorator to raise Invalid errors if bot protection is engaged'''
     def antispam_hook(remainder, params):
         '''Converts various errors in validate_request to a single Invalid message'''
         try:
             new_params = cls.validate_request(params=params)
             params.update(new_params)
         except (ValueError, TypeError, binascii.Error):
             testing = pylons.request.environ.get('paste.testing', False)
             if testing:
                 # re-raise so we can see problems more easily
                 raise
             else:
                 # regular antispam failure handling
                 raise Invalid(error_msg, params, None)
     return before_validate(antispam_hook)
Ejemplo n.º 8
0
    def validate(cls, error_msg, error_url=None):
        '''Controller decorator to raise Invalid errors if bot protection is engaged'''
        def antispam_hook(remainder, params):
            '''Converts various errors in validate_request to a single Invalid message'''
            try:
                new_params = cls.validate_request(params=params)
                params.update(new_params)

                if tg.request.POST:
                    # request.params is immutable, but will reflect changes to request.POST
                    tg.request.POST.update(new_params)
            except (ValueError, TypeError, binascii.Error):
                testing = tg.request.environ.get('paste.testing', False)
                if testing and not tg.request.environ.get('regular_antispam_err_handling_even_when_tests'):
                    # re-raise so we can see problems more easily
                    raise
                else:
                    # regular antispam failure handling
                    tg.flash(error_msg, 'error')
                    redirect(error_url or six.ensure_text(tg.request.referer or '.'))
        return before_validate(antispam_hook)
Ejemplo n.º 9
0
    def validate(cls, error_msg, error_url=None):
        '''Controller decorator to raise Invalid errors if bot protection is engaged'''
        def antispam_hook(remainder, params):
            '''Converts various errors in validate_request to a single Invalid message'''
            try:
                new_params = cls.validate_request(params=params)
                params.update(new_params)

                if tg.request.POST:
                    # request.params is immutable, but will reflect changes to request.POST
                    tg.request.POST.update(new_params)
            except (ValueError, TypeError, binascii.Error):
                testing = tg.request.environ.get('paste.testing', False)
                if testing and not tg.request.environ.get('regular_antispam_err_handling_even_when_tests'):
                    # re-raise so we can see problems more easily
                    raise
                else:
                    # regular antispam failure handling
                    tg.flash(error_msg, 'error')
                    redirect(error_url or tg.request.referer or '.')
        return before_validate(antispam_hook)
Ejemplo n.º 10
0
Archivo: base.py Proyecto: Ayutac/SAUCE
        # Use my bootstrap-enabled template
        override_template(FilterCrudRestController.edit,
            'mako:sauce.templates.crc.edit')

    @staticmethod
    def injector(remainder, params):
        '''Injects the modifiers from self.inject into params

        self.inject has to be a dictionary of key, object pairs
        '''
        # Get currently dispatched controller instance
        # Does not work, only returns last statically dispatch controller,
        # but we use _lookup in EventsController
        #s = dispatched_controller()
        self = request.controller_state.controller

        for k in getattr(self, 'inject', dict()):
            log.info('Injecting %r = %r into params %r for %r', k, self.inject[k], params, self.model)
            params[k] = self.inject[k]


# Register injection hook for POST requests
before_validate(FilterCrudRestController.injector)(FilterCrudRestController.post)

# Register hook for get_all
before_render(FilterCrudRestController.before_render_get_all)(FilterCrudRestController.get_all)
# Register hook for new
before_render(FilterCrudRestController.before_render_new)(FilterCrudRestController.new)
# Register hook for edit
before_render(FilterCrudRestController.before_render_edit)(FilterCrudRestController.edit)
Ejemplo n.º 11
0
    @staticmethod
    def injector(remainder, params):
        '''Injects the objects from self.inject into params

        self.inject has to be a dictionary of key, object pairs
        '''
        # Get currently dispatched controller instance
        # Does not work, only returns last statically dispatch controller,
        # but we use _lookup in EventsController
        #s = dispatched_controller()
        self = request.controller_state.controller

        for k in getattr(self, 'inject', []):
            params[k] = self.inject[k]


# Register injection hook for POST requests
before_validate(FilterCrudRestController.injector)(
    FilterCrudRestController.post)

# Register hook for get_all
before_render(FilterCrudRestController.before_get_all)(
    FilterCrudRestController.get_all)
# Register hook for new
before_render(FilterCrudRestController.before_new)(
    FilterCrudRestController.new)
# Register hook for edit
before_render(FilterCrudRestController.before_edit)(
    FilterCrudRestController.edit)