def fb_login(cls, did, fbid, fb_name, frd_list): uid = cls.fbid_to_uid(fbid) is_new = False if uid is None: uid = cls.did_to_uid(did) # create new account if device already binded to a fb id if uid is None or cls.did_to_fbid(did) is not None: uid = cls.create_user(fbid, cls.FBID2UID) is_new = True Log.info("create user by fb: uid=%d" % uid) else: # clear device id map to enable new login by did? Redis().hset(cls.FBID2UID, fbid, uid) Redis().hset(cls.DID2FBID, did, fbid) Log.info("move user to fb map: uid=%d" % uid) #update info user = User(uid) user.setName(fb_name) if not user.fbid: #import friends for 1st time uid_list = [] for f in frd_list: u = cls.fbid_to_uid(f) if u is not None: uid_list.append(u) if len(uid_list) > 0: Social.importFriends(uid, uid_list) user.fbid = fbid return (uid, is_new)
def confirm(cls, para): uid = para['uid'] fuid = para['fuid'] req = cls(uid) if not req.exist(fuid): return Error.REQUEST_NOT_EXIST if Social.importFriends(uid, [fuid]) is False: return Error.FRIEND_FULL req.delete(fuid) return {}