Esempio n. 1
0
    def POST(self,none):
        web.header("Content-Type","text/html; charset=utf-8")
        form = forms.product_update_form()
        if not form.validates(): 
            return render("baseform.html",form=form,title="修改产品套餐",action="/product/update/")    
        else:
            db = get_db()
            product = db.query(models.RadProduct).get(form.d.id)
            if not product:
                return errorpage("产品不存在")
            try:
                product.name = form.d.name
                product.fee_num = form.d.fee_num
                product.fee_price = int(Decimal(form.d.fee_price)*100)
                product.concur_number = form.d.concur_number
                product.bind_mac = form.d.bind_mac
                product.bind_vlan = form.d.bind_vlan
                product.bandwidth_code = form.d.bandwidth_code
                product.input_max_limit = form.d.input_max_limit
                product.output_max_limit = form.d.output_max_limit
                product.input_rate_code = form.d.input_rate_code
                product.output_rate_code = form.d.output_rate_code
                product.domain_code = form.d.domain_code
                product.status = 0
                db.commit()
                db.flush()
            except Exception,e:
                db.rollback()
                log.error("update product error: %s"%str(e))
                return errorpage("修改套餐失败 %s"%str(e))

            raise web.seeother("/product",absolute=True) 
Esempio n. 2
0
 def POST(self):
     web.header("Content-Type", "text/html; charset=utf-8")
     form = forms.group_add_form()
     if not form.validates():
         return render("baseform.html",
                       form=form,
                       title="新增用户组",
                       action="/group/add")
     else:
         db = get_db()
         if db.query(models.RadGroup)\
              .filter(models.RadGroup.node_id == form.d.node_id)\
              .filter(models.RadGroup.group_id == form.d.group_id)\
              .count()>0:
             return errorpage("用户组编码重复")
         try:
             group = models.RadGroup()
             group.node_id = form.d.node_id
             group.group_id = form.d.group_id
             group.group_name = form.d.group_name
             db.add(group)
             db.commit()
             db.flush()
         except Exception, e:
             db.rollback()
             log.error("add group error: %s" % str(e))
             return errorpage("新增用户组失败 %s" % str(e))
         raise web.seeother("/group", absolute=True)
Esempio n. 3
0
    def POST(self):
        web.header("Content-Type","text/html; charset=utf-8")
        form = forms.product_add_form()
        if not form.validates(): 
            return render("baseform.html",form=form,title="新增产品套餐",action="/product/add")    
        else:
            db = get_db()
            if db.query(models.RadProduct).filter(models.RadProduct.id == form.d.id).count()>0:
                return errorpage("产品编号重复")
            try:
                radproduct = models.RadProduct()
                radproduct.id = form.d.id
                radproduct.name = form.d.name
                radproduct.policy = form.d.policy
                radproduct.fee_num = form.d.fee_num
                radproduct.fee_price = int(Decimal(form.d.fee_price)*100)
                radproduct.concur_number = form.d.concur_number
                radproduct.bind_mac = form.d.bind_mac
                radproduct.bind_vlan = form.d.bind_vlan
                radproduct.bandwidth_code = form.d.bandwidth_code
                radproduct.input_max_limit = form.d.input_max_limit
                radproduct.output_max_limit = form.d.output_max_limit
                radproduct.input_rate_code = form.d.input_rate_code
                radproduct.output_rate_code = form.d.output_rate_code
                radproduct.domain_code = form.d.domain_code
                radproduct.status = 0
                db.add(radproduct)
                db.commit()
                db.flush()
            except Exception,e:
                db.rollback()
                log.error("add product error: %s"%str(e))
                return errorpage("产品新增失败 %s"%str(e))

            raise web.seeother("/product",absolute=True)             
Esempio n. 4
0
 def POST(self):
     web.header("Content-Type","text/html; charset=utf-8")
     form = forms.group_add_form()
     if not form.validates(): 
         return render("baseform.html",form=form,title="新增用户组",action="/group/add")    
     else:
         db = get_db()
         if db.query(models.RadGroup)\
              .filter(models.RadGroup.node_id == form.d.node_id)\
              .filter(models.RadGroup.group_id == form.d.group_id)\
              .count()>0:
             return errorpage("用户组编码重复")       
         try:
             group = models.RadGroup()
             group.node_id = form.d.node_id
             group.group_id = form.d.group_id
             group.group_name = form.d.group_name
             db.add(group)
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("add group error: %s"%str(e))
             return errorpage("新增用户组失败 %s"%str(e))
         raise web.seeother("/group",absolute=True)
Esempio n. 5
0
    def POST(self, none):
        web.header("Content-Type", "text/html; charset=utf-8")
        form = forms.product_update_form()
        if not form.validates():
            return render("baseform.html",
                          form=form,
                          title="修改产品套餐",
                          action="/product/update/")
        else:
            db = get_db()
            product = db.query(models.RadProduct).get(form.d.id)
            if not product:
                return errorpage("产品不存在")
            try:
                product.name = form.d.name
                product.fee_num = form.d.fee_num
                product.fee_price = int(Decimal(form.d.fee_price) * 100)
                product.concur_number = form.d.concur_number
                product.bind_mac = form.d.bind_mac
                product.bind_vlan = form.d.bind_vlan
                product.bandwidth_code = form.d.bandwidth_code
                product.input_max_limit = form.d.input_max_limit
                product.output_max_limit = form.d.output_max_limit
                product.input_rate_code = form.d.input_rate_code
                product.output_rate_code = form.d.output_rate_code
                product.domain_code = form.d.domain_code
                product.status = 0
                db.commit()
                db.flush()
            except Exception, e:
                db.rollback()
                log.error("update product error: %s" % str(e))
                return errorpage("修改套餐失败 %s" % str(e))

            raise web.seeother("/product", absolute=True)
Esempio n. 6
0
 def POST(self):
     web.header("Content-Type","text/html; charset=utf-8")
     form = forms.nas_add_form()
     if not form.validates(): 
         return render("baseform.html",form=form,title="新增NAS设备",action="/nas/add")    
     else:
         db = get_db()
         if db.query(models.RadNas).filter(models.RadNas.ip_addr == form.d.ip_addr).count()>0:
             return errorpage("Nas %s 已经存在"%form.d.ip_addr)       
         try:
             nas = models.RadNas()
             nas.id = nextid()
             nas.ip_addr = form.d.ip_addr
             nas.name = form.d.name
             nas.auth_secret = form.d.auth_secret
             nas.acct_secret = form.d.acct_secret
             nas.vendor_id = form.d.vendor_id
             nas.time_type = form.d.time_type
             nas.status = form.d.status
             db.add(nas)
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("add nes error: %s"%str(e))
             return errorpage("新增Nas失败 %s"%str(e))
         raise web.seeother("/nas",absolute=True)
Esempio n. 7
0
    def POST(self, none):
        web.header("Content-Type", "text/html; charset=utf-8")
        form = forms.node_update_form()
        if not form.validates(source=web.input(nas_bind=[])):
            return render("baseform.html",
                          form=form,
                          title="新增节点",
                          action="/node/update/")
        else:
            db = get_db()
            radnode = db.query(models.RadNode).filter(
                models.RadNode.id == form.d.node_id).first()
            if not radnode:
                return errorpage("节点不存在")

            try:
                radnode.id = form.d.node_id
                radnode.name = form.d.node_name
                radnode.desc = form.d.node_desc

                radopr = db.query(models.RadOpr)\
                .filter(models.RadOpr.type==1)\
                .filter(models.RadOpr.node_id == form.d.node_id).first()
                radopr.node_id = radnode.id
                radopr.id = nextid()
                radopr.type = 1
                radopr.name = form.d.opr_name
                radopr.ip_addr = form.d.opr_ip
                radopr.password = encrypt(form.d.opr_passwd)
                radopr.status = 0

                #修改nas绑定
                for nasnode in db.query(models.RadNasNode).filter(
                        models.RadNasNode.node_id == radnode.id):
                    db.delete(nasnode)

                for ip in form.d.nas_bind:
                    radnasnode = models.RadNasNode()
                    radnasnode.node_id = radnode.id
                    radnasnode.ip_addr = ip
                    db.add(radnasnode)

                db.commit()
                db.flush()
            except Exception, e:
                db.rollback()
                log.error("update node error: %s" % str(e))
                return errorpage("节点修改失败 %s" % str(e))
            raise web.seeother("/node", absolute=True)
Esempio n. 8
0
 def GET(self,productid):
     if productid:
         db = get_db()
         try:
             if db.query(models.RadUser).filter(models.RadUser.product_id == productid).count()>0:
                 return errorpage("产品已经有用户使用,不允许删除")
             radproduct = db.query(models.RadProduct).get(productid)
             if radproduct:
                 db.delete(radproduct)                     
                 db.commit()
                 db.flush()
         except Exception,e:
             db.rollback()
             log.error("delete product error: %s"%str(e))
             return errorpage("删除失败 %s"%str(e))
Esempio n. 9
0
 def GET(self, productid):
     if productid:
         db = get_db()
         try:
             if db.query(models.RadUser).filter(
                     models.RadUser.product_id == productid).count() > 0:
                 return errorpage("产品已经有用户使用,不允许删除")
             radproduct = db.query(models.RadProduct).get(productid)
             if radproduct:
                 db.delete(radproduct)
                 db.commit()
                 db.flush()
         except Exception, e:
             db.rollback()
             log.error("delete product error: %s" % str(e))
             return errorpage("删除失败 %s" % str(e))
Esempio n. 10
0
 def POST(self):
     web.header("Content-Type", "text/html; charset=utf-8")
     form = forms.user_add_form()
     if not form.validates():
         form.group_id.args = getGroupIds(form.d.node_id)
         return render("baseform.html",
                       form=form,
                       title="新增用户",
                       action="/user/add")
     else:
         db = get_db()
         if db.query(models.RadUser)\
              .filter(models.RadUser.user_name == form.d.user_name)\
              .count()>0:
             return errorpage("帐号重复")
         try:
             user = models.RadUser()
             user.id = nextid()
             user.node_id = form.d.node_id
             user.group_id = form.d.group_id
             user.user_name = form.d.user_name
             user.user_cname = form.d.user_cname
             user.password = encrypt(form.d.password)
             user.product_id = form.d.product_id
             user.status = form.d.status
             user.auth_begin_date = form.d.auth_begin_date
             user.auth_end_date = form.d.auth_end_date
             user.user_control = form.d.user_control
             user.concur_number = form.d.concur_number
             user.user_vlan = form.d.user_vlan
             user.user_mac = form.d.user_mac
             user.ip_addr = form.d.ip_addr
             user.install_address = form.d.install_address
             user.balance = 0
             user.time_length = 0
             user.basic_fee = 0
             user.create_time = currtime()
             db.add(user)
             db.commit()
             db.flush()
         except Exception, e:
             db.rollback()
             log.error("add user error: %s" % str(e))
             return errorpage("新增用户失败 %s" % str(e))
         raise web.seeother("/user", absolute=True)
Esempio n. 11
0
    def POST(self):
        web.header("Content-Type","text/html; charset=utf-8")
        form = forms.node_add_form()
       
        if not form.validates(source=web.input(nas_bind=[])): 
            return render("baseform.html",form=form,title="新增节点",action="/node/add")   
        else:
            db = get_db()
            if db.query(models.RadNode).filter(models.RadNode.id == form.d.node_id).count()>0:
                return errorpage("节点编号重复")
            try:
                radnode = models.RadNode()
                radnode.id = form.d.node_id
                radnode.name = form.d.node_name
                radnode.desc = form.d.node_desc

                radopr = models.RadOpr()
                radopr.node_id = radnode.id
                radopr.id = nextid()
                radopr.type = 1
                radopr.name = form.d.opr_name
                radopr.ip_addr = form.d.opr_ip
                radopr.password = encrypt(form.d.opr_passwd)
                radopr.status = 0

                db.add(radnode)
                db.add(radopr)


                #新增nas绑定
                for ip in form.d.nas_bind:
                    radnasnode = models.RadNasNode()
                    radnasnode.node_id = radnode.id
                    radnasnode.ip_addr = ip
                    db.add(radnasnode) 

                db.commit()
                db.flush()
            except Exception,e:
                db.rollback()
                log.error("add node error: %s"%str(e))
                return errorpage("节点新增失败 %s"%str(e))

            raise web.seeother("/node",absolute=True)
Esempio n. 12
0
 def POST(self):
     web.header("Content-Type","text/html; charset=utf-8")
     form = forms.user_add_form()
     if not form.validates(): 
         form.group_id.args = getGroupIds(form.d.node_id)
         return render("baseform.html",form=form,title="新增用户",action="/user/add")    
     else:
         db = get_db()
         if db.query(models.RadUser)\
              .filter(models.RadUser.user_name == form.d.user_name)\
              .count()>0:
             return errorpage("帐号重复")       
         try:
             user = models.RadUser()
             user.id = nextid()
             user.node_id = form.d.node_id
             user.group_id = form.d.group_id
             user.user_name = form.d.user_name
             user.user_cname = form.d.user_cname
             user.password = encrypt(form.d.password)
             user.product_id = form.d.product_id
             user.status = form.d.status
             user.auth_begin_date = form.d.auth_begin_date
             user.auth_end_date = form.d.auth_end_date
             user.user_control = form.d.user_control
             user.concur_number = form.d.concur_number
             user.user_vlan = form.d.user_vlan
             user.user_mac = form.d.user_mac
             user.ip_addr = form.d.ip_addr
             user.install_address = form.d.install_address
             user.balance = 0
             user.time_length = 0
             user.basic_fee = 0
             user.create_time = currtime()
             db.add(user)
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("add user error: %s"%str(e))
             return errorpage("新增用户失败 %s"%str(e))
         raise web.seeother("/user",absolute=True)
Esempio n. 13
0
 def GET(self,nasid):
     if nasid:
         db = get_db()
         try:
             for nas in db.query(models.RadNas).filter(models.RadNas.id == nasid):
                 db.delete(nas)
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("delete nas error: %s"%str(e))
             return errorpage("删除失败 %s"%str(e))
Esempio n. 14
0
    def POST(self):
        web.header("Content-Type", "text/html; charset=utf-8")
        form = forms.product_add_form()
        if not form.validates():
            return render("baseform.html",
                          form=form,
                          title="新增产品套餐",
                          action="/product/add")
        else:
            db = get_db()
            if db.query(models.RadProduct).filter(
                    models.RadProduct.id == form.d.id).count() > 0:
                return errorpage("产品编号重复")
            try:
                radproduct = models.RadProduct()
                radproduct.id = form.d.id
                radproduct.name = form.d.name
                radproduct.policy = form.d.policy
                radproduct.fee_num = form.d.fee_num
                radproduct.fee_price = int(Decimal(form.d.fee_price) * 100)
                radproduct.concur_number = form.d.concur_number
                radproduct.bind_mac = form.d.bind_mac
                radproduct.bind_vlan = form.d.bind_vlan
                radproduct.bandwidth_code = form.d.bandwidth_code
                radproduct.input_max_limit = form.d.input_max_limit
                radproduct.output_max_limit = form.d.output_max_limit
                radproduct.input_rate_code = form.d.input_rate_code
                radproduct.output_rate_code = form.d.output_rate_code
                radproduct.domain_code = form.d.domain_code
                radproduct.status = 0
                db.add(radproduct)
                db.commit()
                db.flush()
            except Exception, e:
                db.rollback()
                log.error("add product error: %s" % str(e))
                return errorpage("产品新增失败 %s" % str(e))

            raise web.seeother("/product", absolute=True)
Esempio n. 15
0
 def GET(self):
     user_id = web.input().get("user_id")
     if user_id:
         db = get_db()
         try:
             for user in db.query(models.RadUser).filter(models.RadUser.id == user_id):
                 db.delete(user)
             db.commit()
             db.flush()
         except Exception as e:
             db.rollback()
             log.error("delete user error: %s"%str(e))
             return errorpage("删除失败")
     raise web.seeother("/user",absolute=True)
Esempio n. 16
0
 def POST(self,none):
     web.header("Content-Type","text/html; charset=utf-8")
     form = forms.nas_update_form()
     if not form.validates(): 
         return render("baseform.html",form=form,title="修改NAS设备",action="/nas/update/")    
     else:
         db = get_db()
         nas = db.query(models.RadNas).get(form.d.id)
         if not nas:
             return errorpage("Nas不存在")       
         try:
             nas.name = form.d.name
             nas.auth_secret = form.d.auth_secret
             nas.acct_secret = form.d.acct_secret
             nas.vendor_id = form.d.vendor_id
             nas.time_type = form.d.time_type
             nas.status = form.d.status
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("update nas error: %s"%str(e))
             return errorpage("修改Nas失败 %s"%str(e))
         raise web.seeother("/nas",absolute=True)
Esempio n. 17
0
 def GET(self):
     user_id = web.input().get("user_id")
     if user_id:
         db = get_db()
         try:
             for user in db.query(
                     models.RadUser).filter(models.RadUser.id == user_id):
                 db.delete(user)
             db.commit()
             db.flush()
         except Exception as e:
             db.rollback()
             log.error("delete user error: %s" % str(e))
             return errorpage("删除失败")
     raise web.seeother("/user", absolute=True)
Esempio n. 18
0
 def GET(self,nodeid):
     if nodeid:
         db = get_db()
         try:
             for node in db.query(models.RadNode).filter(models.RadNode.id == nodeid):
                 db.delete(node)
             for opr in db.query(models.RadOpr).filter(models.RadOpr.node_id == nodeid):
                 db.delete(opr)   
             for nasnode in db.query(models.RadNasNode).filter(models.RadNasNode.node_id == nodeid):
                 db.delete(nasnode)                     
             db.commit()
             db.flush()
         except Exception,e:
             db.rollback()
             log.error("delete node error: %s"%str(e))
             return errorpage("删除失败 %s"%str(e))
Esempio n. 19
0
 def GET(self):
     node_id = web.input().get("node_id")
     group_id = web.input().get("group_id")
     if node_id and group_id:
         db = get_db()
         try:
             for group in db.query(models.RadGroup)\
              .filter(models.RadGroup.node_id == node_id)\
              .filter(models.RadGroup.group_id == group_id):
                 db.delete(group)
             db.commit()
             db.flush()
         except Exception as e:
             db.rollback()
             log.error("delete group error: %s"%str(e))
             return errorpage("删除失败")
     raise web.seeother("/group",absolute=True)                
Esempio n. 20
0
 def GET(self):
     node_id = web.input().get("node_id")
     group_id = web.input().get("group_id")
     if node_id and group_id:
         db = get_db()
         try:
             for group in db.query(models.RadGroup)\
              .filter(models.RadGroup.node_id == node_id)\
              .filter(models.RadGroup.group_id == group_id):
                 db.delete(group)
             db.commit()
             db.flush()
         except Exception as e:
             db.rollback()
             log.error("delete group error: %s" % str(e))
             return errorpage("删除失败")
     raise web.seeother("/group", absolute=True)
Esempio n. 21
0
 def GET(self, nodeid):
     if nodeid:
         db = get_db()
         try:
             for node in db.query(
                     models.RadNode).filter(models.RadNode.id == nodeid):
                 db.delete(node)
             for opr in db.query(
                     models.RadOpr).filter(models.RadOpr.node_id == nodeid):
                 db.delete(opr)
             for nasnode in db.query(models.RadNasNode).filter(
                     models.RadNasNode.node_id == nodeid):
                 db.delete(nasnode)
             db.commit()
             db.flush()
         except Exception, e:
             db.rollback()
             log.error("delete node error: %s" % str(e))
             return errorpage("删除失败 %s" % str(e))