def lookup(cookies, ip): cookie = facebook.get_user_from_cookie(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 = Users.find(facebookid=cookie["uid"]) try: if not user: graph = facebook.GraphAPI(cookie["access_token"]) profile = graph.get_object("me") Users.add(ip, facebookid=str(profile['id']), name=profile['name'], profile_url=profile['link']) else: graph = facebook.GraphAPI(cookie["access_token"]) profile = graph.get_object("me") Users.add(ip, facebookid=str(profile['id']), name=profile['name'], profile_url=profile['link']) return profile except: return else: return
def done(self): username = self.user_name.group().lower() # Check if user already exists. if Users.by_name(username): self.errors(name_error="User already exists") else: password = self.passwd.group() email = None if self.email: email = self.email # hash the password before storing in database passwd_hash = Secure.make_salt_password(username, password) # Add the user, hashed password or email to the database usr_obj = Users.add(username, passwd_hash, email) cookie_val = self.make_cookie(str(usr_obj.key().id())) self.set_cookie("user_id", cookie_val) self.redirect("/blog/newpost")