def i_update_user_after_get_sys_config_success(user, body): body_dom = minidom.parseString(body) config = user.get_config() node_name_list = ["servers", "parameters", "hints"] map_config_xml_to_obj(config, body_dom, node_name_list) servers_nodes = body_dom.getElementsByTagName("servers") if servers_nodes: servers_node = servers_nodes[0] config.servers_version = servers_node.getAttribute("version") parameters_nodes = body_dom.getElementsByTagName("parameters") if parameters_nodes: parameters_node = parameters_nodes[0] config.parameters_version = parameters_node.getAttribute("version") hints_nodes = body_dom.getElementsByTagName("hints") if hints_nodes: hints_node = hints_nodes[0] config.hints_version = hints_node.getAttribute("version") data = config.to_dict() data.update({"sid": user.sid}) save_data_to_local_json(data, "sys_config.json")
def i_update_user_after_get_sys_config_success(user, body): body_dom = minidom.parseString(body) config = user.get_config() node_name_list = ["servers", "parameters", "hints"] map_config_xml_to_obj(config, body_dom, node_name_list) servers_nodes = body_dom.getElementsByTagName("servers") if servers_nodes: servers_node = servers_nodes[0] config.servers_version = servers_node.getAttribute("version") parameters_nodes = body_dom.getElementsByTagName("parameters") if parameters_nodes: parameters_node = parameters_nodes[0] config.parameters_version = parameters_node.getAttribute("version") hints_nodes = body_dom.getElementsByTagName("hints") if hints_nodes: hints_node = hints_nodes[0] config.hints_version = hints_node.getAttribute("version") data = config.to_dict() data.update({"sid" : user.sid}) save_data_to_local_json(data, "sys_config.json")
def i_update_user_after_ssi_auth_success(user, res_obj, remember_passwd): """ get and set SSI cookie, uri, user ID, mobile No. """ body_dom = minidom.parseString(res_obj.body) headers = res_obj.getheader("Set-Cookie") ssi_cookie = strip2(headers, "ssic=", ";") user.set_ssi_cookie(ssi_cookie) user_node = body_dom.getElementsByTagName("user")[0] user.uri = user_node.getAttribute("uri") user.sid = get_sid_from_uri(user.uri) user_node = body_dom.getElementsByTagName("user")[0] user.mobile_no = user_node.getAttribute("mobile-no") user.user_id = user_node.getAttribute("user-id") user.set_user_path(user.sid) user.set_portrait_save_path() set_last_login_sid(user.sid) if remember_passwd: hashed_passwd = user.get_hashed_passwd() else: hashed_passwd = None data = { "sid": user.sid, "mobile_no": user.mobile_no, "hashed_passwd": "%s%s" % (HASHED_PREFIX, hashed_passwd), "last_presence": user.get_presence(), } save_data_to_local_json(data, "account.json")
def i_update_user_after_sipc_auth_success(user, res_obj): """ get and set contacts, configurations, last login {time,ip} """ body_dom = minidom.parseString(res_obj.body) # parse client node client_node = body_dom.getElementsByTagName("client")[0] map_node_attr_to_obj(client_node, user) # parse user-info node user_info_node = body_dom.getElementsByTagName("user-info")[0] _parse_personal_node(user, user_info_node) _parse_configs_node(user, user_info_node) _parse_custom_config_node(user, user_info_node) _parse_contact_list_node(user, user_info_node) # ignore score node _parse_services_node(user, user_info_node) _parse_quotas_node(user, user_info_node) # ignore capability-list node #user.contact_list.append(user.to_contact()) data = { "version" : user.version, "contact_list_version" : user.contact_list_version, "custom_config_version" : user.custom_config_version, "sid" : user.sid, } save_data_to_local_json(data, "user_info_versions.json")
def i_update_user_after_ssi_auth_success(user, res_obj, remember_passwd): """ get and set SSI cookie, uri, user ID, mobile No. """ body_dom = minidom.parseString(res_obj.body) headers = res_obj.getheader('Set-Cookie') ssi_cookie = strip2(headers, "ssic=", ";") user.set_ssi_cookie(ssi_cookie) user_node = body_dom.getElementsByTagName("user")[0] user.uri = user_node.getAttribute("uri") user.sid = get_sid_from_uri(user.uri) user_node = body_dom.getElementsByTagName("user")[0] user.mobile_no = user_node.getAttribute("mobile-no") user.user_id = user_node.getAttribute("user-id") user.set_user_path(user.sid) user.set_portrait_save_path() set_last_login_sid(user.sid) if remember_passwd: hashed_passwd = user.get_hashed_passwd() else: hashed_passwd = None data = { "sid" : user.sid, "mobile_no" : user.mobile_no, "hashed_passwd" : "%s%s" % (HASHED_PREFIX, hashed_passwd), "last_presence" : user.get_presence() } save_data_to_local_json(data, "account.json")
def _parse_custom_config_node(user, body_dom): custom_config_node = body_dom.getElementsByTagName("custom-config")[0] custom_config_version = custom_config_node.getAttribute("version") if user.custom_config_version == custom_config_version: logger.info("custom_config_version matched, skip update") return custon_config = custom_config_node.childNodes[0].data data = {"data" : custon_config, "sid" : user.sid} save_data_to_local_json(data, "custom_config.json")
def _parse_personal_node(user, body_dom): # results -> user-info -> personal personal_node = body_dom.getElementsByTagName("personal")[0] pn_attr = personal_node.getAttribute version = pn_attr("version") if user.version == version: logger.info("version matched, skip update") return map_node_attr_to_obj(personal_node, user) data = xml_node_attributes2dict(personal_node) data["sid"] = user.sid save_data_to_local_json(data, "personal_node.json")
def save_contact_list_to_local(user): groups_d = {} for group in user.group_agent.group_list: gid = int(group.gid) groups_d[gid] = group.gname contacts_d = {} for contact in group.contact_list: cat_d = contact.to_dict() sid = int(cat_d["sid"]) contacts_d[sid] = cat_d data = { "contacts" : contacts_d, "sid" : user.sid } save_data_to_local_json(data, "%s_list.json" % group.gname) data = {"groups" : groups_d, "sid" : int(user.sid)} save_data_to_local_json(data, "group_list.json")