Beispiel #1
0
 def current_user(self):
     if not hasattr(self, "_current_user"):
         self._current_user = None
         current_session = self.current_session       
         cookie = get_user_from_cookie(self.request.cookies, FACEBOOK_APP_ID, FACEBOOK_APP_SECRET)
         if cookie:
             # Store a local instance of the user data so we don't need
             # a round-trip to Facebook on every request
             user = ChillUser.get_by_key_name(cookie["uid"])
             if not user:
                 graph = GraphAPI(cookie["access_token"])
                 profile = graph.get_object("me")
                 album_id = str(graph.put_object("me", "albums", name="Chillbrain Photos")["id"])
                 user = ChillUser(key_name=str(profile["id"]),
                             id=str(profile["id"]),
                             name=profile["name"],
                             access_token=cookie["access_token"],
                             album=album_id)
                 user.put()
             elif user.access_token != cookie["access_token"]:
                 user.access_token = cookie["access_token"]
                 user.put()
             self._current_user = user
         # if there is no FB cookie then try to pull the temp user from the active session
         elif current_session.is_active():
             self._current_user = BaseUser.get(current_session[SESS_KEY_USER])
         # otherwise create a new temporary user
         else:
             self._current_user = BaseUser().create()
     return self._current_user
Beispiel #2
0
def migrate_session(user, session):    
    session.set_quick(SESS_TEMP_USER, False)
    temp = BaseUser.get(session[SESS_KEY_USER])
    user.migrate(temp)
    temp.delete()
    session[SESS_KEY_USER] = user.key()