Exemplo n.º 1
0
    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)
Exemplo n.º 2
0
    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 {}