import logging from flask import _request_ctx_stack from data import model logger = logging.getLogger(__name__) def get_authenticated_user(): user = getattr(_request_ctx_stack.top, 'authenticated_user', None) if not user: username = getattr(_request_ctx_stack.top, 'authenticated_username', None) if not username: logger.debug('No authenticated user or deferred username.') return None logger.debug('Loading deferred authenticated user.') loaded = model.get_user(username) set_authenticated_user(loaded) user = loaded logger.debug('Returning authenticated user: %s', user.username) return user def set_authenticated_user(user_or_robot): ctx = _request_ctx_stack.top ctx.authenticated_user = user_or_robot def set_authenticated_user_deferred(username_or_robotname): logger.debug('Deferring loading of authenticated user object: %s', username_or_robotname) ctx = _request_ctx_stack.top ctx.authenticated_username = username_or_robotname def get_validated_oauth_token(): return getattr(_request_ctx_stack.top, 'validated_oauth_token', None) def set_validated_oauth_token(token): ctx = _request_ctx_stack.top ctx.validated_oauth_token = token def get_validated_token(): return getattr(_request_ctx_stack.top, 'validated_token', None) def set_validated_token(token): ctx = _request_ctx_stack.top ctx.validated_token = token