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
def set_path(self,key,path): if not session.has_key('tracker'): session['tracker']=dict() session['tracker_'+key]=path
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
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)