Example #1
0
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
Example #2
0
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)