Esempio n. 1
0
def add_user():
    """
    添加用户信息
    :return:
    """
    if request.method == "GET":
        result = Role.all_roles(validator=False)
        return jsonify({"code": 0, "result": result})

    add_item = new_user_Form(request.form)
    add_item.r_id.choices = Role.all_roles()
    roles = Role.choiced_role_item(add_item.r_id.data)
    if add_item.validate():
        user = User()
        with db.auto_commit():
            user.set_attrs(add_item.data)
            user.role = roles
            db.session.add(user)
        # 添加用户策略到访问控制文件
        ugp = []
        if user.is_lock == 0:
            for r in roles:
                ugp.append([r.name])
        update_group_policy = ret_all_groups()
        update_group_policy[user.username] = ugp
        file_adapter.change_policy("g", update_group_policy)
        return data_return()
    return data_return(code=1, errmsg=err_list(add_item))
Esempio n. 2
0
def add_role():
    res_data = request.form
    id = res_data.get("id")
    if id:
        r_data = UpdateRoleForm(request.form)
        role = Role.query.filter(Role.id==id).first_or_404()
    else:
        r_data = AddRoleForm(request.form)
        role = Role()

    r_data.p_id.choices = Permission.all_permission()
    ob_perm = Permission.choiced_permission_item(r_data.p_id.data)
    if r_data.validate():
        with db.auto_commit():
            role.set_attrs(r_data.data)
            role.permission = ob_perm
            db.session.add(role)

        # 添加角色权限到ACL
        ugp = []
        for p in ob_perm:
            ugp.append([p.url+"/*", "*"])
        update_group_policy = ret_all_policy()
        update_group_policy[role.name] = ugp
        file_adapter.change_policy("p", update_group_policy)

        return data_return()
    else:
        return data_return(code=1,errmsg=err_list(r_data))
Esempio n. 3
0
def update_user_info():
    """
    更新用户信息
    :return:
    """
    info = userForm(request.form)
    info.r_id.choices = Role.all_roles()
    roles = Role.choiced_role_item(info.r_id.data)
    if info.validate():
        ob_user = User.query.filter_by(id=info.id.data).first()
        with db.auto_commit():
            ob_user.set_attrs(info.data)
            ob_user.role = roles

        # 更新用户策略到访问控制文件
        ugp = []
        if ob_user.is_lock == 0:
            for r in roles:
                ugp.append([r.name])
        update_group_policy = ret_all_groups()
        update_group_policy[info.username.data] = ugp
        file_adapter.change_policy("g", update_group_policy)

        return data_return()
    err = "\n".join([v[0] for k, v in info.errors.items()])
    return data_return(code=1, errmsg=err)
Esempio n. 4
0
def change_user_info():
    uid = request.args.get("id")
    user = User.query.filter_by(id=uid).first_or_404()
    if user:
        res = model_serializable(user)
        r_id = [r["id"] for r in res["role"]]
        res["role"] = Role.select_list(r_id)
        return data_return(result=res)
    return data_return(code=1, errmsg="用户不存在")
Esempio n. 5
0
def change_self_info():
    user = User.query.filter_by(id=current_user.id).first()
    form = infoForm(request.form)
    if form.validate():
        with db.auto_commit():
            user.set_attrs(form.data)
        return data_return()
    err = "\n".join([v[0] for k, v in form.errors.items()])
    return data_return(errmsg=err, code=1)
Esempio n. 6
0
File: idc.py Progetto: bboy1919/cmdb
def create_idc():
    res = IdcForm(request.form)
    if res.validate():
        idc = Idc()
        idc.set_attrs(res.data)
        with db.auto_commit():
            db.session.add(idc)
        return data_return()
    else:
        err = err_list(res)
        return data_return(code=1, errmsg=err)
Esempio n. 7
0
def change_self_password():
    form = PassForm(request.form)
    user = User.query.filter_by(id=current_user.id).first()
    if form.validate():
        if user.check_password(form.oldpasswd.data):
            user.password = form.newpasswd.data
            db.session.commit()
            return data_return()
        return data_return(errmsg=form.oldpasswd.errors, code=1)
    err = "/n".join(form.newpasswd.errors)
    return data_return(errmsg=err, code=1)
Esempio n. 8
0
def update_switch():
    if request.method == "GET":
        id = request.args.get("id")
        get_sw = Switch.query.filter(Switch.id == id).first_or_404()
        return data_return(result=model_serializable(get_sw))

    update_s = UpdateSwitchForm(request.form)
    if update_s.validate():
        id = update_s.id.data
        update_sw = Switch.query.filter(Switch.id == id).first_or_404()
        with db.auto_commit():
            update_sw.set_attrs(update_s.data)
        return data_return()
Esempio n. 9
0
File: idc.py Progetto: bboy1919/cmdb
def update_idc():
    if request.method == "GET":
        id = request.args.get("id")
        idc_item = Idc.query.filter(Idc.id == id).first_or_404()
        return data_return(result=model_serializable(idc_item))
    id = request.form.get("id")
    idc_item = Idc.query.filter(Idc.id == id).first_or_404()
    res_idc = UpdateIdcForm(request.form)
    if res_idc.validate():
        with db.auto_commit():
            idc_item.set_attrs(res_idc.data)
        return data_return()
    else:
        return data_return(code=1,errmsg= err_list(res_idc))
Esempio n. 10
0
def update_server():
    if request.method == "GET":
        id = request.args.get("id")
        s_item = Server.query.filter(Server.id == id).first_or_404()
        res = model_serializable(s_item)
        return data_return(result=res)
    res_s = UpdateServerForm(request.form)
    if res_s.validate():
        id = res_s.id.data
        update_s = Server.query.filter(Server.id==id).first_or_404()
        with db.auto_commit():
            update_s.set_attrs(res_s.data)
        return data_return()
    else:
        return data_return(code=1,errmsg=err_list(res_s))
Esempio n. 11
0
def add_cabinet():
    if request.method == "GET":
        res = []
        res_list = Idc.query.all()
        for item in res_list:
            res.append(model_serializable(item))
        return data_return(result=res)
    r_cab = AddCabinetForm(request.form)
    if r_cab.validate():
        cab = Cabinet()
        with db.auto_commit():
            cab.set_attrs(r_cab.data)
            db.session.add(cab)
        return data_return()
    else:
        return data_return(code=1, errmsg=err_list(r_cab))
Esempio n. 12
0
def add_permission():
    res_data = request.form
    id = res_data.get("id")
    if id:
        perm = Permission.query.filter(Permission.id == id).first_or_404()
        p_data = UpdatePermForm(request.form)
    else:
        perm = Permission()
        p_data = AddPermForm(request.form)
    if p_data.validate():
        with db.auto_commit():
            perm.set_attrs(p_data.data)
            db.session.add(perm)
        return data_return()
    else:
        return data_return(code=1, errmsg=err_list(p_data))
Esempio n. 13
0
def perm_info():
    result = []
    q_l = Permission.query.all()
    for perm in q_l:
        res = model_serializable(perm)
        result.append(res)

    return data_return(result=result)
Esempio n. 14
0
def update_cabinet():
    if request.method == "GET":
        id = request.args.get("id")
        update_cab = Cabinet.query.filter(Cabinet.id == id).first_or_404()
        res = model_serializable(update_cab)
        return data_return(result=res)

    r_cab = UpdateCabinetForm(request.form)
    id = r_cab.id.data
    if r_cab.validate():
        cab = Cabinet.query.filter(Cabinet.id == id).first_or_404()
        with db.auto_commit():
            cab.set_attrs(r_cab.data)
            db.session.add(cab)
        return data_return()
    else:
        return data_return(code=1, errmsg=err_list(r_cab))
Esempio n. 15
0
def change_user_passwd():
    password_form = dict(request.form)
    id = password_form["passwdid"]
    password = password_form["changepasswd"]
    ch_password_user = User.query.filter_by(id=id).first()
    ch_password_user.password = password
    db.session.commit()
    return data_return()
Esempio n. 16
0
def get_jigui():
    res = []
    server_list = Server.query.all()
    for item in server_list:
        server_item = model_serializable(item)
        server_item["cabinet_name"] = server_item["cabinet"]["name"]
        server_item["idc_name"] = server_item["cabinet"]["idc"]["name"]
        res.append(server_item)
    return data_return(result=res)
Esempio n. 17
0
def add_server():
    if request.method == "GET":
        """
        获取所有机柜信息
        """
        all_cab = Cabinet.query.all()
        res = [model_serializable(c) for c in all_cab]
        return data_return(result=res)

    add_server_form = AddServerForm(request.form)
    if add_server_form.validate():
        serv = Server()
        with db.auto_commit():
            serv.set_attrs(add_server_form.data)
            db.session.add(serv)
        return data_return()
    else:
        return data_return(code=1,errmsg=err_list(add_server_form))
Esempio n. 18
0
def get_host():
    init()
    zabbix_hosts = Zbhost.query.all()
    hostid = [zb.cmdb_hostid if zb.cmdb_hostid else 0 for zb in zabbix_hosts]
    server_hosts = [sh.id for sh in Server.query.all()]

    get_ip = Server.query.with_entities(Server.id, Server.ip).filter(~Server.id.in_(hostid)).all()
    get_ip = dict(get_ip)
    return data_return(result=get_ip)
Esempio n. 19
0
def add_switch():
    if request.method == "GET":
        """
        获取所有机柜信息
        """
        all_cab = Cabinet.query.all()
        res = [model_serializable(c) for c in all_cab]
        return data_return(result=res)

    res_switch = AddSwitchForm(request.form)
    if res_switch.validate():
        with db.auto_commit():
            sw = Switch()
            sw.set_attrs(res_switch.data)
            db.session.add(sw)
        return data_return()
    else:
        return data_return(code=1, errmsg=err_list(res_switch))
Esempio n. 20
0
def role_info():
    result = []
    r_l = Role.query.all()

    for role in r_l:
        res = model_serializable(role)
        res["permission"] = ",".join([p["name"] for p in res["permission"]])
        result.append(res)

    return data_return(result=result)
Esempio n. 21
0
def get_perm():
    id = request.args.get("id")
    if id:
        args = int(id)
        r = Role.query.filter(Role.id==args).first_or_404()
        perm_l = [p.id for p in r.permission]
        perm_l = Permission.select_list(perm_l)
    else:
        perm_l = Permission.all_permission(validator=False)
    return data_return(result=perm_l)
Esempio n. 22
0
def user_info():
    result = []

    user_l = User.query.filter_by().all()
    for u in user_l:
        res = model_serializable(u)
        res["role"] = ",".join([r["name"] for r in res["role"]])
        result.append(res)

    return data_return(result=result)
Esempio n. 23
0
def del_user():
    id = request.args.get("id")
    user = User.query.filter_by(id=id).first()
    name = user.username
    with db.auto_commit():
        user.delete()
    update_group_policy = ret_all_groups()
    update_group_policy[name] = []
    file_adapter.change_policy("g", update_group_policy)

    return data_return()
Esempio n. 24
0
def login():

    if request.method == 'GET':
        return render_template("login.html")
    form = LoginForm(request.form)
    if form.validate():
        user = User.query.filter_by(username=form.username.data).first()
        if user and user.check_password(form.passwd.data):
            if user.is_lock == 1:
                res = {'code': 0, 'errmsg': "用户已被锁定"}
            else:
                with db.auto_commit():
                    user.last_login = int(datetime.now().timestamp())
                login_user(user, remember=False)
                res = {'code':0,'errmsg':'ok'}
        else:
            res = {'code': 1, 'errmsg': "用户名或密码错误"}
    else:
        err = [value[0] for key,value in form.errors.items()]
        res = {'code': 1, 'errmsg': "\n".join(err)}

    return data_return(**res)
Esempio n. 25
0
def del_perm():
    id = int(request.args.get("id"))
    delitem = Permission.query.filter(Permission.id == id).first_or_404()
    with db.auto_commit():
        db.session.delete(delitem)
    return data_return()
Esempio n. 26
0
def got_perm():
    uid = int(request.args.get("id"))
    perm_item = Permission.query.filter(Permission.id == uid).first_or_404()
    e = model_serializable(perm_item)
    return data_return(result=e)
Esempio n. 27
0
File: idc.py Progetto: bboy1919/cmdb
def del_idc():
    id = request.args.get("id")
    del_idc_item = Idc.query.filter(Idc.id == id).first_or_404()
    with db.auto_commit():
        db.session.delete(del_idc_item)
    return data_return()
Esempio n. 28
0
File: idc.py Progetto: bboy1919/cmdb
def get_idc():
    res = []
    idc_list = Idc.query.all()
    for item in idc_list:
        res.append(model_serializable(item))
    return data_return(result=res)
Esempio n. 29
0
def del_cabinet():
    id = request.args.get("id")
    del_cab = Cabinet.query.filter(Cabinet.id == id).first_or_404()
    with db.auto_commit():
        db.session.delete(del_cab)
    return data_return()
Esempio n. 30
0
def get_cabinet():
    res = []
    cab_list = Cabinet.query.all()
    for item in cab_list:
        res.append(model_serializable(item))
    return data_return(result=res)