Example #1
0
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")
Example #2
0
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")
Example #3
0
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")
Example #4
0
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")
Example #5
0
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")
Example #6
0
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")
Example #7
0
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")
Example #8
0
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")