def get_current_user(request): session = get_current_session() if session.has_key('user'): return session['user'] else: (user_key, provider) = find_user_key(request) if user_key is not None: user = UserInfo.get_by_key_name(user_key) session.set_quick('user', user) return user return None
def find_user_key(request): guser = users.get_current_user() key = None provider = None if guser is not None: logging.info("federated login found") # logged in through federated login key = guser.federated_identity() or 'TEST_ID' # TEST is for dev server provider = guser.federated_provider() or 'TEST_PROVIDER' elif FB_API.find_session(request): logging.info("facebook login found") # logged in through facebook # TODO: FB_API should not contain per session info key = 'fb_%s' % FB_API.uid provider = 'facebook.connect' session = get_current_session() if session.has_key('counter'): session['counter'] += 1 else: session['counter'] = 1 logging.info("Counter = %d", session['counter']) return (key, provider)