def before_request(): decorate_endpoints() d = TypeConversionDict(request.cookies) d['request_time'] = time.time() request.cookies = ImmutableTypeConversionDict(d) logging.info("before_request %s" % request)
def _build_updated_cookies(request, user_token, route, name): """ Based on the current request, create updated headers and cookies content attributes. """ # Interpret cookie header content cookies_header = Cookie.SimpleCookie() currrent_cookie_content = request.headers.get('cookie', None) if currrent_cookie_content: cookies_header.load(currrent_cookie_content.encode("utf8")) # Interpret cookies attribute (immutable dict) as a normal dict if request.cookies: cookies = dict(request.cookies) else: cookies = {} # Update cookie structures if route: # Create/update solr route cookies_header[name.encode("utf8")] = route.encode("utf8") cookies[name] = route else: # Discard non-registered solr route if it is present cookies_header.pop(name, None) cookies.pop(name, None) # Transform cookies structures into the format that request requires cookies_header_content = cookies_header.output(header="", sep=";") cookies_content = ImmutableTypeConversionDict(cookies) return cookies_header_content, cookies_content
def values(self): """ sanitized values """ return [ self.sanitize_input(v) for v in ImmutableTypeConversionDict.values(self) ]
def pop(self, key): """ Sanitized pop :param key: the key for the value :type key: str """ val = ImmutableTypeConversionDict.pop(key) return self.sanitize_input(val)
def before_request(): # hack to allow browsers who don't set 3rd party cookies x_session = request.headers.get('X-Session') if x_session: rc = dict(request.cookies) rc['session'] = x_session request.cookies = ImmutableTypeConversionDict(rc) # refresh session refreshed_csrf_token = app.session_interface.open_session( app, request).get('csrf_token') session['csrf_token'] = refreshed_csrf_token user_agent = parse(request.user_agent.string) g.mobile = False if user_agent.is_mobile or user_agent.is_tablet: g.mobile = True g.constants = Constants g.config = app.config g.mode = app.config.get('MODE') g.response_context = [] g.s = strings g.payment = payment.StripeAPI() g.db = database.OpinewSQLAlchemyFacade()
def items(self): """ Sanitized items """ return [(v[0], self.sanitize_input(v[1])) for v in ImmutableTypeConversionDict.items(self)]
def values(self): """ sanitized values """ return [self.sanitize_input(v) for v in ImmutableTypeConversionDict.values(self)]
def __getitem__(self, key): """ Sanitized __getitem__ """ val = ImmutableTypeConversionDict.__getitem__(self, key) return self.sanitize_input(val)