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
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"]
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
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)