Example #1
0
    def dispatch_request(self, *args, **kwargs):
        #check permissions, if something failed will quit
        self.setEnv()

        ret = False
        error = False

        try:
            if not self.check_permissions(*args, **kwargs):
                ret = self.permission_response
        except PermissionDeniedException as e:
            ret = e.return_response
            if request.url == self.tracker.current:
                self.tracker.rollback_referrer()  #infinite loop protection
            error = e.error

        if not ret:
            try:
                ret = self.prepare(*args, **kwargs)
            except RedirectException as e:
                ret = redirect(e.location)
            except ResponseException as e:
                ret = e.response
            except ResponseErrorException as e:
                error = e.error
            except PermissionDeniedException as e:
                ret = e.return_response
                error = e.error

        if not ret and not error:
            #actual response is being serving by requested method name(get/post/etc)
            if self.track and self.method == 'html':
                self.tracker.update_referrer(
                )  #update tracker only on html pages
                if session.has_key(
                        'login_url'
                ):  #after login redirect made by this session var, delete it now
                    del session['login_url']

            try:
                ret = super(MainPage, self).dispatch_request(*args, **kwargs)
                #sucessfull request
            except ResponseErrorException as e:
                error = e.error
            except PermissionDeniedException as e:
                ret = e.return_response
                error = e.error
            #response should be returned in type set by method

        if self.method == 'modal':
            if error:
                #return JS based error
                return response_error(error=error)
            if isinstance(ret, BaseResponse):
                #if response is redirect return it with all required settings
                if ret.headers.get('Location'):
                    return response_redirect(
                        redirect_to=ret.headers.get('Location'),
                        in_modal=self.redirect_in_modal,
                        remember_modal=self.remember_modal)
            else:
                #everything fine, show response
                return response_ok(data=ret, force_modal=True)

        if error:  #got some error, return to current page (tracker was not updated) and show error
            session['error'] = error
            return redirect(self.tracker.current)

        return ret
Example #2
0
    def set_path(self,key,path):
        if not session.has_key('tracker'):
            session['tracker']=dict()

        session['tracker_'+key]=path
Example #3
0
    def dispatch_request(self, *args, **kwargs):
        #check permissions, if something failed will quit
        self.setEnv()

        ret=False
        error=False


        try:
            if not self.check_permissions(*args,**kwargs):
                ret=self.permission_response
        except PermissionDeniedException as e:
            ret=e.return_response
            if request.url==self.tracker.current:
                self.tracker.rollback_referrer() #infinite loop protection
            error=e.error


        if not ret:
            try:
                ret=self.prepare(*args,**kwargs)
            except RedirectException as e:
                ret=redirect(e.location)
            except ResponseException as e:
                ret=e.response
            except ResponseErrorException as e:
                error=e.error
            except PermissionDeniedException as e:
                ret=e.return_response
                error=e.error

        if not ret and not error:
            #actual response is being serving by requested method name(get/post/etc)
            if self.track and self.method=='html':
                self.tracker.update_referrer()  #update tracker only on html pages
                if session.has_key('login_url'):#after login redirect made by this session var, delete it now
                    del session['login_url']

            try:
                ret=super(MainPage,self).dispatch_request(*args,**kwargs)
                #sucessfull request
            except ResponseErrorException as e:
                error=e.error
            except PermissionDeniedException as e:
                ret=e.return_response
                error=e.error
            #response should be returned in type set by method


        if self.method=='modal':
            if error:
                #return JS based error
                return response_error(error=error)
            if isinstance(ret,BaseResponse):
                #if response is redirect return it with all required settings
                if ret.headers.get('Location'):
                    return response_redirect(
                        redirect_to=ret.headers.get('Location'),
                        in_modal=self.redirect_in_modal,
                        remember_modal=self.remember_modal
                    )
            else:
                #everything fine, show response
                return response_ok(data=ret,force_modal=True)

        if error: #got some error, return to current page (tracker was not updated) and show error
            session['error']=error
            return redirect(self.tracker.current)

        return ret
Example #4
0
def csrfCheck(self, field):
    if not session.has_key('csrf_token'):
        raise ValidationError('csrf validation error')
    sessionid = session['csrf_token']
    if not sessionid == field.data:
        raise ValidationError('csrf validation error')
def feedthewallet():
    # Resets the current negotiation
    if session.has_key('nid'): del session['nid']
    params_tpl = {}
    params_tpl['wallet_blc'] = get_balance([negotiator.addr1])
    return render_template('feedthewallet.html', params_tpl=params_tpl)