Beispiel #1
0
def make_xmpp_relation(user_ls, add_roster=False, del_roster=False):
    """
    xmpp用户关系设置
    :param user_ls:用户列表
    :param add_roster: 是否添加用户之间为roster关系
    :param del_roster: 是否删除用户之间的roster关系
    :return: [(jid1, jid_pass1),,,,]
    """
    from lib.device_type import choice_device_type

    jid_ls = []

    # register/login user
    http_rpc = ServiceMgrCacher().get_connection(ST_REGISTER, protocol=PT_HTTPS)
    for user in user_ls:
        login_result = login(http_rpc, user, user, enum.DEVICE_USER)
        if login_result.get('result', None) != error_code.ERROR_SUCCESS:
            regiger_result = register(http_rpc, "", user, user, enum.DEVICE_USER, user, device_type=choice_device_type())
            assert regiger_result.get('result', None) == error_code.ERROR_SUCCESS
            login_result = login(http_rpc, user, user, enum.DEVICE_USER)
            assert login_result.get('result', None) == error_code.ERROR_SUCCESS
        jid_ls.append((login_result['user_info']['jid'], user))

    # add/del roster
    for idx, user in enumerate(user_ls):
        next_idx = idx + 1
        while next_idx < len(user_ls):
            if add_roster:
                try:
                    UserService().add_roster(user_ls[idx], user_ls[next_idx])
                except:
                    pass
                try:
                    UserService().add_roster(user_ls[next_idx], user_ls[idx])
                except:
                    pass
            if del_roster:
                try:
                    UserService().del_roster(user_ls[idx], user_ls[next_idx])
                except:
                    pass
                try:
                    UserService().del_roster(user_ls[next_idx], user_ls[idx])
                except:
                    pass
            next_idx += 1

    return jid_ls
Beispiel #2
0
    def _gen_jid(self):
        args = ArgumentParser().args
        user_name = passwd = "_".join([get_cur_ip(), str(args.tcp_port), str(args.http_port)])

        http_rpc = ServiceMgrCacher().get_connection(US_REGISTER, protocol=PT_HTTPS)
        assert http_rpc

        login_result = login(http_rpc, user_name, passwd, enum.ADMIN_USER)
        if login_result.get("result", None) != error_code.ERROR_SUCCESS:
            regiger_result = register(http_rpc, "", user_name, passwd, enum.ADMIN_USER, des="bridge_auto_created")
            assert regiger_result.get("result", None) == error_code.ERROR_SUCCESS
            login_result = login(http_rpc, user_name, passwd, enum.ADMIN_USER)
            assert login_result.get("result", None) == error_code.ERROR_SUCCESS

        self.__jid = login_result["user_info"]["jid"]
        self.__jid_pwd = login_result["user_info"]["jid_pwd"]
Beispiel #3
0
 def post(self, username, password, verify_code=None, *args, **kwargs):
     reg_https_client = ServiceMgrCacher().get_connection(US_REGISTER, protocol=PT_HTTPS)
     result = login(reg_https_client, username, password,
                    param_sign=urllib.quote(Signer().gen_sign("", username, password)))
     if result['result'] != error_code.ERROR_SUCCESS:
         self.set_status(444,'Account or password is not correct')
         return
     else:
         return result
    def test_sign(self):
        user_name = random_str()
        password = random_str()

        register_result = register(RgstHttpRpc, "", user_name, password, enum.DEVICE_USER, "TEST1",
                                   urllib.quote(Signer().gen_sign("", user_name, password, enum.DEVICE_USER, "TEST1")))
        assert "sign" not in register_result

        login_result = login(RgstHttpRpc, user_name, password, type=enum.DEVICE_USER)
        assert "sign" not in login_result
Beispiel #5
0
def LoginGetTokenUser(http_rpc_client, user_name, password):
    result = login(
        http_rpc_client,
        user_name,
        password,
        verify_code="",
        param_sign=urllib.quote(Signer().gen_sign("", user_name, password)),
    )
    assert result["result"] == error_code.ERROR_SUCCESS
    return result["access_token"], result["user_info"]
    def test_wechat_user_login(self):
        user_name = random_str()
        password = random_str()

        register(RgstHttpRpc, "", user_name, password, enum.WECHAT_USER, "TEST1",
                 urllib.quote(Signer().gen_sign("", user_name, password, enum.WECHAT_USER, "TEST1")))

        result = login(RgstHttpRpc, user_name, password, type=enum.WECHAT_USER)
        assert result["result"] == error_code.ERROR_SUCCESS

        LoginGetToken(RgstHttpRpc, user_name, password)
        LoginGetTokenUser(RgstHttpRpc, user_name, password)

        cancel(RgstHttpRpc, "", user_name, password, urllib.quote(Signer().gen_sign("", user_name, password)), enum.WECHAT_USER)