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))
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))
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)
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="用户不存在")
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)
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)
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)
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()
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))
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))
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))
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))
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)
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))
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()
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)
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))
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)
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))
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)
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)
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)
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()
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)
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()
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)
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()
def get_idc(): res = [] idc_list = Idc.query.all() for item in idc_list: res.append(model_serializable(item)) return data_return(result=res)
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()
def get_cabinet(): res = [] cab_list = Cabinet.query.all() for item in cab_list: res.append(model_serializable(item)) return data_return(result=res)