def dispatch(self): csrf = None csrf_cookie_value = self.request.cookies.get( webclient_settings.COOKIE_CSRF_KEY) if self.autoload_current_user: from app.models.auth import User User.set_current_user_from_auth_code( self.request.cookies.get(webclient_settings.COOKIE_USER_KEY)) current_user = User.current_user() current_user.set_taskqueue( self.request.headers.get('X-AppEngine-QueueName', None) != None ) # https://developers.google.com/appengine/docs/python/taskqueue/overview-push#Python_Task_request_headers current_user.set_cron( self.request.headers.get('X-Appengine-Cron', None) != None ) # https://developers.google.com/appengine/docs/python/config/cron#Python_app_yaml_Securing_URLs_for_cron csrf = current_user._csrf if not csrf_cookie_value: if csrf == None: csrf = util.random_chars(32) self.response.set_cookie(webclient_settings.COOKIE_CSRF_KEY, csrf) try: self.before() super(Base, self).dispatch() self.after() finally: # support our memcache wrapper lib temporary variables, and release them upon request complete mem._local.__release_local__()
def before(self): from app.models.auth import User self.template['current_user'] = User.current_user()