def product_update(db): form = forms.product_update_form() if not form.validates(source=request.forms): return render("sys_product_form", form=form) product = db.query(models.SlcRadProduct).get(form.d.id) product.product_name = form.d.product_name product.product_status = form.d.product_status product.fee_months = form.d.get("fee_months", 0) product.bind_mac = form.d.bind_mac product.bind_vlan = form.d.bind_vlan product.concur_number = form.d.concur_number product.fee_period = form.d.fee_period product.fee_price = utils.yuan2fen(form.d.fee_price) product.input_max_limit = form.d.input_max_limit product.output_max_limit = form.d.output_max_limit product.update_time = utils.get_currtime() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改资费信息:%s' % (get_cookie("username"), serial_json(product)) db.add(ops_log) db.commit() websock.update_cache("product", product_id=product.id) redirect("/product")
def product_add_post(db): form = forms.product_add_form() if not form.validates(source=request.forms): return render("sys_product_form", form=form) product = models.SlcRadProduct() product.product_name = form.d.product_name product.product_policy = form.d.product_policy product.product_status = form.d.product_status product.fee_months = form.d.get("fee_months", 0) product.bind_mac = form.d.bind_mac product.bind_vlan = form.d.bind_vlan product.concur_number = form.d.concur_number product.fee_period = form.d.fee_period product.fee_price = utils.yuan2fen(form.d.fee_price) product.input_max_limit = form.d.input_max_limit product.output_max_limit = form.d.output_max_limit _datetime = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") product.create_time = _datetime product.update_time = _datetime db.add(product) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)新增资费信息:%s' % (get_cookie("username"), serial_json(product)) db.add(ops_log) db.commit() redirect("/product")
def bas_add_post(db): form = forms.bas_add_form() if not form.validates(source=request.forms): return render("base_form", form=form) if db.query( models.SlcRadBas.id).filter_by(ip_addr=form.d.ip_addr).count() > 0: return render("base_form", form=form, msg=u"Bas地址已经存在") bas = models.SlcRadBas() bas.ip_addr = form.d.ip_addr bas.bas_name = form.d.bas_name bas.time_type = form.d.time_type bas.vendor_id = form.d.vendor_id bas.bas_secret = form.d.bas_secret bas.coa_port = form.d.coa_port db.add(bas) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)新增BAS信息:%s' % (get_cookie("username"), serial_json(bas)) db.add(ops_log) db.commit() redirect("/bas")
def admin_login_post(db): uname = request.forms.get("username") upass = request.forms.get("password") if not uname: return dict(code=1, msg=u"请填写用户名") if not upass: return dict(code=1, msg=u"请填写密码") enpasswd = md5(upass.encode()).hexdigest() opr = db.query(models.SlcOperator).filter_by( operator_name=uname, operator_pass=enpasswd).first() if not opr: return dict(code=1, msg=u"用户名密码不符") if opr.operator_status == 1: return dict(code=1, msg=u"该操作员账号已被停用") set_cookie('username', uname) set_cookie('opr_type', opr.operator_type) set_cookie('login_time', utils.get_currtime()) set_cookie('login_ip', request.remote_addr) if opr.operator_type > 0: permit.unbind_opr(uname) for rule in db.query( models.SlcOperatorRule).filter_by(operator_name=uname): permit.bind_opr(rule.operator_name, rule.rule_path) ops_log = models.SlcRadOperateLog() ops_log.operator_name = uname ops_log.operate_ip = request.remote_addr ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)登陆' % (uname, ) db.add(ops_log) db.commit() return dict(code=0, msg="ok")
def roster_add_post(db): form = forms.roster_add_form() if not form.validates(source=request.forms): return render("sys_roster_form", form=form) if db.query(models.SlcRadRoster.id).filter_by( mac_addr=form.d.mac_addr).count() > 0: return render("sys_roster_form", form=form, msg=u"MAC地址已经存在") roster = models.SlcRadRoster() roster.mac_addr = form.d.mac_addr.replace("-", ":").upper() roster.begin_time = form.d.begin_time roster.end_time = form.d.end_time roster.roster_type = form.d.roster_type db.add(roster) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)新增黑白名单信息:%s' % (get_cookie("username"), serial_json(roster)) db.add(ops_log) db.commit() websock.update_cache("roster", mac_addr=roster.mac_addr) redirect("/roster")
def account_update(db): form = forms.account_update_form() if not form.validates(source=request.forms): return render("base_form", form=form) account = db.query(models.SlcRadAccount).get(form.d.account_number) account.ip_address = form.d.ip_address account.install_address = form.d.install_address account.user_concur_number = form.d.user_concur_number account.bind_mac = form.d.bind_mac account.bind_vlan = form.d.bind_vlan if form.d.new_password: account.password = utils.encrypt(form.d.new_password) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() _d = form.d.copy() del _d['new_password'] ops_log.operate_desc = u'操作员(%s)修改上网账号信息:%s' % (get_cookie("username"), json.dumps(_d)) db.add(ops_log) db.commit() websock.update_cache("account", account_number=account.account_number) redirect("/bus/member/detail?member_id={}".format(account.member_id))
def admin_logout(db): ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)登出' % (get_cookie("username"), ) db.add(ops_log) db.commit() set_cookie('username', None) set_cookie('login_node', None) set_cookie('login_time', None) set_cookie('login_ip', None) request.cookies.clear() redirect('/login')
def opr_delete(db): opr_id = request.params.get("opr_id") db.query(models.SlcOperator).filter_by(id=opr_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除操作员信息:%s' % (get_cookie("username"), opr_id) db.add(ops_log) db.commit() redirect("/opr")
def bas_delete(db): bas_id = request.params.get("bas_id") db.query(models.SlcRadBas).filter_by(id=bas_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除BAS信息:%s' % (get_cookie("username"), bas_id) db.add(ops_log) db.commit() redirect("/bas")
def roster_delete(db): roster_id = request.params.get("roster_id") db.query(models.SlcRadRoster).filter_by(id=roster_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除黑白名单信息:%s' % (get_cookie("username"), roster_id) db.add(ops_log) db.commit() websock.update_cache("roster", roster_id=roster_id) redirect("/roster")
def group_delete(db): group_id = request.params.get("group_id") db.query(models.SlcRadGroup).filter_by(id=group_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除用户组信息:%s' % (get_cookie("username"), group_id) db.add(ops_log) db.commit() websock.update_cache("group", group_id=group_id) redirect("/group")
def node_delete(db): node_id = request.params.get("node_id") if db.query( models.SlcMember.member_id).filter_by(node_id=node_id).count() > 0: return render("error", msg=u"该节点下有用户,不允许删除") db.query(models.SlcNode).filter_by(id=node_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除区域信息:%s' % (get_cookie("username"), node_id) db.add(ops_log) db.commit() redirect("/node")
def product_attr_update(db): attr_id = request.params.get("attr_id") attr = db.query(models.SlcRadProductAttr).get(attr_id) product_id = attr.product_id db.query(models.SlcRadProductAttr).filter_by(id=attr_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除资费属性信息:%s' % (get_cookie("username"), serial_json(attr)) db.add(ops_log) db.commit() websock.update_cache("product", product_id=product_id) redirect("/product/detail?product_id=%s" % product_id)
def node_add_update(db): form = forms.node_update_form() if not form.validates(source=request.forms): return render("base_form", form=form) node = db.query(models.SlcNode).get(form.d.id) node.node_name = form.d.node_name node.node_desc = form.d.node_desc ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改区域信息:%s' % (get_cookie("username"), serial_json(node)) db.add(ops_log) db.commit() redirect("/node")
def passwd_update(db): form = forms.passwd_update_form() if not form.validates(source=request.forms): return render("base_form", form=form) if form.d.operator_pass != form.d.operator_pass_chk: return render("base_form", form=form, msg=u"确认密码不一致") opr = db.query(models.SlcOperator).first() opr.operator_pass = md5(form.d.operator_pass).hexdigest() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改密码' % (get_cookie("username"), ) db.add(ops_log) db.commit() redirect("/passwd")
def user_release(db): account_number = request.params.get('account_number') user = db.query( models.SlcRadAccount).filter_by(account_number=account_number) user.mac_addr = '' user.vlan_id = 0 user.vlan_id2 = 0 ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'释放用户账号(%s)绑定信息' % (account_number, ) db.add(ops_log) db.commit() websock.update_cache("account", account_number=account_number) return dict(code=0, msg=u"解绑成功")
def product_delete(db): product_id = request.params.get("product_id") if db.query( models.SlcRadAccount).filter_by(product_id=product_id).count() > 0: return render("error", msg=u"该套餐有用户使用,不允许删除") db.query(models.SlcRadProduct).filter_by(id=product_id).delete() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)删除资费信息:%s' % (get_cookie("username"), product_id) db.add(ops_log) db.commit() websock.update_cache("product", product_id=product_id) redirect("/product")
def roster_add_update(db): form = forms.roster_update_form() if not form.validates(source=request.forms): return render("sys_roster_form", form=form) roster = db.query(models.SlcRadRoster).get(form.d.id) roster.begin_time = form.d.begin_time roster.end_time = form.d.end_time roster.roster_type = form.d.roster_type ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改黑白名单信息:%s' % (get_cookie("username"), serial_json(roster)) db.add(ops_log) db.commit() websock.update_cache("roster", mac_addr=roster.mac_addr) redirect("/roster")
def product_attr_update(db): form = forms.product_attr_update_form() if not form.validates(source=request.forms): return render("pattr_form", form=form, pattrs=radius_attrs) attr = db.query(models.SlcRadProductAttr).get(form.d.id) attr.attr_name = form.d.attr_name attr.attr_value = form.d.attr_value attr.attr_desc = form.d.attr_desc ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改资费属性信息:%s' % (get_cookie("username"), serial_json(attr)) db.add(ops_log) db.commit() websock.update_cache("product", product_id=form.d.product_id) redirect("/product/detail?product_id=" + form.d.product_id)
def param_update(db): params = db.query(models.SlcParam) wsflag = False for param in params: if param.param_name in request.forms: _value = request.forms.get(param.param_name) if _value: _value = _value.decode('utf-8') if _value and param.param_value not in _value: param.param_value = _value if param.param_name == '3_radiusd_address': if param.param_value != MakoTemplate.defaults['radaddr']: MakoTemplate.defaults['radaddr'] = param.param_value wsflag = True if param.param_name == '4_radiusd_admin_port': if param.param_value != MakoTemplate.defaults['adminport']: MakoTemplate.defaults['adminport'] = param.param_value wsflag = True if param.param_name == u'reject_delay': websock.update_cache("reject_delay", reject_delay=param.param_value) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改参数:%s' % ( get_cookie("username"), json.dumps(','.join([serial_json(param) for p in params]), ensure_ascii=False)) db.add(ops_log) db.commit() if wsflag: websock.reconnect( MakoTemplate.defaults['radaddr'], MakoTemplate.defaults['adminport'], ) websock.update_cache("param") redirect("/param")
def opr_add_update(db): form = forms.opr_update_form() if not form.validates(source=request.forms): return render("sys_opr_form", form=form) opr = db.query(models.SlcOperator).get(form.d.id) if form.d.operator_pass: opr.operator_pass = md5(form.d.operator_pass).hexdigest() opr.operator_desc = form.d.operator_desc opr.operator_status = form.d.operator_status # update rules db.query(models.SlcOperatorRule).filter_by( operator_name=opr.operator_name).delete() for path in request.params.getall("rule_item"): item = permit.get_route(path) if not item: continue rule = models.SlcOperatorRule() rule.operator_name = opr.operator_name rule.rule_name = item['name'] rule.rule_path = item['path'] rule.rule_category = item['category'] db.add(rule) permit.unbind_opr(opr.operator_name) for rule in db.query( models.SlcOperatorRule).filter_by(operator_name=opr.operator_name): permit.bind_opr(rule.operator_name, rule.rule_path) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改操作员信息:%s' % (get_cookie("username"), serial_json(opr)) db.add(ops_log) db.commit() redirect("/opr")
def bas_add_update(db): form = forms.bas_update_form() if not form.validates(source=request.forms): return render("base_form", form=form) bas = db.query(models.SlcRadBas).get(form.d.id) bas.bas_name = form.d.bas_name bas.time_type = form.d.time_type bas.vendor_id = form.d.vendor_id bas.bas_secret = form.d.bas_secret bas.coa_port = form.d.coa_port ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改BAS信息:%s' % (get_cookie("username"), serial_json(bas)) db.add(ops_log) db.commit() websock.update_cache("bas", ip_addr=bas.ip_addr) redirect("/bas")
def group_add_update(db): form = forms.group_update_form() if not form.validates(source=request.forms): return render("base_form", form=form) group = db.query(models.SlcRadGroup).get(form.d.id) group.group_name = form.d.group_name group.group_desc = form.d.group_desc group.bind_mac = form.d.bind_mac group.bind_vlan = form.d.bind_vlan group.concur_number = form.d.concur_number group.update_time = utils.get_currtime() ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改用户组信息:%s' % (get_cookie("username"), serial_json(group)) db.add(ops_log) db.commit() websock.update_cache("group", group_id=group.id) redirect("/group")
def admin_login_post(db): uname = request.forms.get("username") upass = request.forms.get("password") if not uname: return dict(code=1, msg=u"请填写用户名") if not upass: return dict(code=1, msg=u"请填写密码") enpasswd = md5(upass.encode()).hexdigest() opr = db.query(models.SlcOperator).filter_by( operator_name=uname, operator_pass=enpasswd).first() if not opr: return dict(code=1, msg=u"用户名密码不符") set_cookie('username', uname) set_cookie('login_node', opr.node_id) set_cookie('login_time', utils.get_currtime()) set_cookie('login_ip', request.remote_addr) ops_log = models.SlcRadOperateLog() ops_log.operator_name = uname ops_log.operate_ip = request.remote_addr ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)登陆' % (uname, ) db.add(ops_log) db.commit() return dict(code=0, msg="ok")
def member_update(db): nodes = [ (n.id,n.node_name) for n in db.query(models.SlcNode)] form=forms.member_update_form(nodes) if not form.validates(source=request.forms): return render("base_form", form=form) member = db.query(models.SlcMember).get(form.d.member_id) member.realname = form.d.realname if form.d.new_password: member.password = md5(form.d.new_password.encode()).hexdigest() member.idcard = form.d.idcard member.mobile = form.d.mobile member.address = form.d.address ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)修改用户信息:%s'%(get_cookie("username"),member.member_name) db.add(ops_log) db.commit() redirect(member_detail_url_formatter(member.member_id))
def opr_add_post(db): form = forms.opr_add_form() if not form.validates(source=request.forms): return render("sys_opr_form", form=form) if db.query(models.SlcOperator.id).filter_by( operator_name=form.d.operator_name).count() > 0: return render("sys_opr_form", form=form, msg=u"操作员已经存在") opr = models.SlcOperator() opr.operator_name = form.d.operator_name opr.operator_type = 1 opr.operator_pass = md5(form.d.operator_pass).hexdigest() opr.operator_desc = form.d.operator_desc opr.operator_status = form.d.operator_status db.add(opr) for path in request.params.getall("rule_item"): item = permit.get_route(path) if not item: continue rule = models.SlcOperatorRule() rule.operator_name = opr.operator_name rule.rule_name = item['name'] rule.rule_path = item['path'] rule.rule_category = item['category'] db.add(rule) ops_log = models.SlcRadOperateLog() ops_log.operator_name = get_cookie("username") ops_log.operate_ip = get_cookie("login_ip") ops_log.operate_time = utils.get_currtime() ops_log.operate_desc = u'操作员(%s)新增操作员信息:%s' % (get_cookie("username"), serial_json(opr)) db.add(ops_log) db.commit() redirect("/opr")