コード例 #1
0
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")
コード例 #2
0
ファイル: customer.py プロジェクト: FoShanTK/ToughRADIUS
def member_join_post(db):
    nodes = [ (n.id,n.node_name) for n in db.query(models.SlcNode)]
    form = forms.member_join_form(nodes)
    if not form.validates(source=request.params):
        return render("join", form=form)    
        
    if db.query(exists().where(models.SlcMember.member_name == form.d.username)).scalar():
        return render("join",form=form,msg=u"用户{0}已被使用".format(form.d.username))
        
    if db.query(exists().where(models.SlcMember.email == form.d.email)).scalar():
        return render("join",form=form,msg=u"用户邮箱{0}已被使用".format(form.d.email))
    
    member = models.SlcMember()
    member.node_id = form.d.node_id
    member.realname = form.d.realname
    member.member_name = form.d.username
    member.password = md5(form.d.password.encode()).hexdigest()
    member.idcard = form.d.idcard
    member.sex = form.d.sex
    member.age = int(form.d.age)
    member.email = form.d.email
    member.mobile = form.d.mobile
    member.address = form.d.address
    member.create_time = utils.get_currtime()
    member.update_time = utils.get_currtime()
    db.add(member) 
    db.commit()
   
    logger.info(u"新用户注册成功,member_name=%s"%member.member_name)
    redirect('/login')
コード例 #3
0
ファイル: customer.py プロジェクト: FoShanTK/ToughRADIUS
def member_login_post(db):
    next = request.params.get("next", "/")
    form = forms.member_login_form()
    if not form.validates(source=request.params):
        return render("login", form=form)
    
    if vcache.is_over(form.d.username,'0'):
        return render("error",msg=u"用户一小时内登录错误超过5次,请一小时后再试")

    member = db.query(models.SlcMember).filter_by(
        member_name=form.d.username
    ).first()
    
    if not member:
        return render("login", form=form,msg=u"用户不存在")
    
    if member.password != md5(form.d.password.encode()).hexdigest():
        vcache.incr(form.d.username,'0')
        print vcache.validates
        return render("login", form=form,msg=u"用户名密码错误第%s次"%vcache.errs(form.d.username,'0'))
 
    vcache.clear(form.d.username,'0')
 
    set_cookie('customer_id',member.member_id)
    set_cookie('customer',form.d.username)
    set_cookie('customer_login_time', utils.get_currtime())
    set_cookie('customer_login_ip', request.remote_addr) 
    redirect(next)
コード例 #4
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
def product_attr_add(db): 
    product_id = request.params.get("product_id")
    if db.query(models.SlcRadProduct).filter_by(id=product_id).count()<=0:
        return render("error",msg=u"资费不存在") 
    form = forms.product_attr_add_form()
    form.product_id.set_value(product_id)
    return render("sys_pattr_form",form=form,pattrs=radius_attrs)
コード例 #5
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
def product_detail(db):
    product_id = request.params.get("product_id")   
    product = db.query(models.SlcRadProduct).get(product_id)
    if not product:
        return render("error",msg=u"资费不存在")
    product_attrs = db.query(models.SlcRadProductAttr).filter_by(product_id=product_id)
    return render("sys_product_detail",product=product,product_attrs=product_attrs) 
コード例 #6
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
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")
コード例 #7
0
ファイル: ops.py プロジェクト: FoShanTK/ToughRADIUS
def user_detail(db):   
    account_number = request.params.get('account_number')  
    user  = db.query(
        models.SlcMember.realname,
        models.SlcRadAccount.member_id,
        models.SlcRadAccount.account_number,
        models.SlcRadAccount.expire_date,
        models.SlcRadAccount.balance,
        models.SlcRadAccount.time_length,
        models.SlcRadAccount.user_concur_number,
        models.SlcRadAccount.status,
        models.SlcRadAccount.mac_addr,
        models.SlcRadAccount.vlan_id,
        models.SlcRadAccount.vlan_id2,
        models.SlcRadAccount.ip_address,
        models.SlcRadAccount.bind_mac,
        models.SlcRadAccount.bind_vlan,
        models.SlcRadAccount.ip_address,
        models.SlcRadAccount.install_address,
        models.SlcRadAccount.create_time,
        models.SlcRadProduct.product_name
    ).filter(
            models.SlcRadProduct.id == models.SlcRadAccount.product_id,
            models.SlcMember.member_id == models.SlcRadAccount.member_id,
            models.SlcRadAccount.account_number == account_number
    ).first()
    if not user:
        return render("error",msg=u"用户不存在")
    user_attrs = db.query(models.SlcRadAccountAttr).filter_by(account_number=account_number)
    return render("ops_user_detail",user=user,user_attrs=user_attrs)
コード例 #8
0
ファイル: issues.py プロジェクト: travislee8964/ToughRADIUS
def issues_add_post(db, render):
    oprs = [(o.operator_name, o.operator_name)
            for o in db.query(models.SlcOperator)]
    form = issues_forms.issues_add_form(oprs)
    if not form.validates(source=request.forms):
        return render("base_form", form=form)
    if db.query(models.SlcRadAccount).filter_by(
            account_number=form.d.account_number).count() == 0:
        return render("base_form", form=form, msg=u"用户账号不存在")

    issues = models.SlcIssues()
    issues.account_number = form.d.account_number
    issues.issues_type = form.d.issues_type
    issues.content = form.d.content
    issues.assign_operator = form.d.assign_operator
    issues.status = 0
    issues.date_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)创建新工单' % (get_cookie("username"))
    db.add(ops_log)

    db.add(issues)
    db.commit()
    redirect("/issues/list")
コード例 #9
0
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")
コード例 #10
0
ファイル: cmanager.py プロジェクト: Mark-Shine/ToughRADIUS
def cmanager_add_post(db): 
    form=cmanager_forms.cmanage_add_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)    

    if db.query(models.SlcCustomerManager).filter(
            models.SlcCustomerManager.manager_code==form.d.manager_code).count()>0:
        return render("base_form",form=form,msg=u"工号重复")
    
    if db.query(models.SlcCustomerManager).filter(
            models.SlcCustomerManager.active_code==form.d.active_code).count()>0:
        return render("base_form",form=form,msg=u"激活码重复")


    cmanager = models.SlcCustomerManager()
    cmanager.manager_code = form.d.manager_code
    cmanager.manager_name = form.d.manager_name
    cmanager.manager_mobile = form.d.manager_mobile
    cmanager.manager_email = form.d.manager_email
    cmanager.active_code = form.d.active_code
    cmanager.active_status = 0
    cmanager.create_time = utils.get_currtime()

    db.add(cmanager)
    db.commit()
    redirect("/cmanager/list")
コード例 #11
0
def product_attr_add(db):
    product_id = request.params.get("product_id")
    if db.query(models.SlcRadProduct).filter_by(id=product_id).count() <= 0:
        return render("error", msg=u"资费不存在")
    form = forms.product_attr_add_form()
    form.product_id.set_value(product_id)
    return render("sys_pattr_form", form=form, pattrs=radius_attrs)
コード例 #12
0
ファイル: customer.py プロジェクト: SuPair/ToughRADIUS-1
def member_login_post(db):
    next = request.params.get("next", "/")
    form = forms.member_login_form()
    if not form.validates(source=request.params):
        return render("login", form=form)

    if vcache.is_over(form.d.username, '0'):
        return render("error", msg=u"用户一小时内登录错误超过5次,请一小时后再试")

    member = db.query(
        models.SlcMember).filter_by(member_name=form.d.username).first()

    if not member:
        return render("login", form=form, msg=u"用户不存在")

    if member.password != md5(form.d.password.encode()).hexdigest():
        vcache.incr(form.d.username, '0')
        print vcache.validates
        return render("login",
                      form=form,
                      msg=u"用户名密码错误第%s次" % vcache.errs(form.d.username, '0'))

    vcache.clear(form.d.username, '0')

    set_cookie('customer_id', member.member_id)
    set_cookie('customer', form.d.username)
    set_cookie('customer_login_time', utils.get_currtime())
    set_cookie('customer_login_ip', request.remote_addr)
    redirect(next)
コード例 #13
0
ファイル: issues.py プロジェクト: shtrend/ToughRADIUS
def issues_add_post(db, render):
    oprs = [(o.operator_name, o.operator_name) for o in db.query(models.SlcOperator)]
    form = issues_forms.issues_add_form(oprs)
    if not form.validates(source=request.forms):
        return render("base_form", form=form)
    if db.query(models.SlcRadAccount).filter_by(account_number=form.d.account_number).count() == 0:
        return render("base_form", form=form,msg=u"用户账号不存在")

    issues = models.SlcIssues()
    issues.account_number = form.d.account_number
    issues.issues_type = form.d.issues_type
    issues.content = form.d.content
    issues.assign_operator = form.d.assign_operator
    issues.status = 0
    issues.date_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)创建新工单' % (get_cookie("username") )
    db.add(ops_log)

    db.add(issues)
    db.commit()
    redirect("/issues/list")
コード例 #14
0
ファイル: app.py プロジェクト: kolbyjack/debomatic
def show_buildopt(opt):
    '''
    Show information about a specific build option
    '''
    opts = data.Options()
    if not opt in opts:
        return render('error.html', code=200, message='That build option could not be found.')
    return render('buildopt.html', optname=opt, opt=opts[opt])
コード例 #15
0
ファイル: app.py プロジェクト: kolbyjack/debomatic
def show_build(build_id):
    '''
    Show information about a build id and information about the last time it built
    '''
    try:
        build = data.Build(id=build_id)
        return render('build.html', build=build)
    except data.UnknownBuildError:
        return render('error.html', code=200, message='That build could not be found.')
コード例 #16
0
ファイル: app.py プロジェクト: kolbyjack/debomatic
def list_builds():
    '''
    Show all existing builds
    '''
    builds = data.Builds()
    if None != builds:
        return render('builds.html', builds=builds)
    else:
        return render('error.html', code=200, message='No builds are currently defined.')
コード例 #17
0
def product_detail(db):
    product_id = request.params.get("product_id")
    product = db.query(models.SlcRadProduct).get(product_id)
    if not product:
        return render("error", msg=u"资费不存在")
    product_attrs = db.query(
        models.SlcRadProductAttr).filter_by(product_id=product_id)
    return render("sys_product_detail",
                  product=product,
                  product_attrs=product_attrs)
コード例 #18
0
def password_update_get(db):
    form = forms.password_update_form()
    account_number = request.params.get('account_number')
    account = db.query(models.SlcRadAccount).get(account_number)
    if not account:
        return render("base_form", form=form, msg=u'没有这个账号')

    if account.member_id != get_cookie("customer_id"):
        return render("base_form", form=form, msg=u'该账号用用户不匹配')

    form.account_number.set_value(account_number)
    return render("base_form", form=form)
コード例 #19
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    account = db.query(models.SlcRadAccount).get(account_number)
    user = query_account(db, account_number)
    form = forms.account_next_form()
    form.product_id.set_value(user.product_id)
    if account.status not in (1, 4):
        return render("bus_account_next_form",
                      user=user,
                      form=form,
                      msg=u"无效用户状态")
    if not form.validates(source=request.forms):
        return render("bus_account_next_form", user=user, form=form)

    accept_log = models.SlcRadAcceptLog()
    accept_log.accept_type = 'next'
    accept_log.accept_source = 'console'
    accept_log.accept_desc = u"用户续费:上网账号:%s,续费%s元" % (account_number,
                                                      form.d.fee_value)
    accept_log.account_number = form.d.account_number
    accept_log.accept_time = utils.get_currtime()
    accept_log.operator_name = get_cookie("username")
    db.add(accept_log)
    db.flush()
    db.refresh(accept_log)

    order_fee = 0
    product = db.query(models.SlcRadProduct).get(user.product_id)
    order_fee = decimal.Decimal(product.fee_price) * decimal.Decimal(
        form.d.months)
    order_fee = int(order_fee.to_integral_value())

    order = models.SlcMemberOrder()
    order.order_id = utils.gen_order_id()
    order.member_id = user.member_id
    order.product_id = user.product_id
    order.account_number = form.d.account_number
    order.order_fee = order_fee
    order.actual_fee = utils.yuan2fen(form.d.fee_value)
    order.pay_status = 1
    order.accept_id = accept_log.id
    order.order_source = 'console'
    order.create_time = utils.get_currtime()
    order.order_desc = u"用户续费"
    db.add(order)

    account.status = 1
    account.expire_date = form.d.expire_date

    db.commit()
    websock.update_cache("account", account_number=account_number)
    redirect("/bus/member/detail?member_id={}".format(user.member_id))
コード例 #20
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    account = db.query(models.SlcRadAccount).get(account_number)
    user = query_account(db, account_number)
    form = forms.account_cancel_form()
    if account.status != 1:
        return render("bus_account_form", user=user, form=form, msg=u"无效用户状态")
    if not form.validates(source=request.forms):
        return render("bus_account_form", user=user, form=form)

    accept_log = models.SlcRadAcceptLog()
    accept_log.accept_type = 'cancel'
    accept_log.accept_source = 'console'
    accept_log.account_number = form.d.account_number
    accept_log.accept_time = utils.get_currtime()
    accept_log.operator_name = get_cookie("username")
    accept_log.accept_desc = u"用户销户:上网账号:%s,退费%s(元)" % (account_number,
                                                        form.d.fee_value)
    db.add(accept_log)
    db.flush()
    db.refresh(accept_log)

    order = models.SlcMemberOrder()
    order.order_id = utils.gen_order_id()
    order.member_id = user.member_id
    order.product_id = user.product_id
    order.account_number = form.d.account_number
    order.order_fee = 0
    order.actual_fee = -utils.yuan2fen(form.d.fee_value)
    order.pay_status = 1
    order.order_source = 'console'
    order.accept_id = accept_log.id
    order.create_time = utils.get_currtime()
    order.order_desc = u'用户销户'
    db.add(order)

    account.status = 3

    db.commit()

    websock.update_cache("account", account_number=account_number)
    onlines = db.query(
        models.SlcRadOnline).filter_by(account_number=account_number)
    for _online in onlines:
        websock.invoke_admin("coa_request",
                             nas_addr=_online.nas_addr,
                             acct_session_id=_online.acct_session_id,
                             message_type='disconnect')
    redirect("/bus/member/detail?member_id={}".format(user.member_id))
コード例 #21
0
ファイル: customer.py プロジェクト: FoShanTK/ToughRADIUS
def ticket_query(db): 
    account_number = request.params.get('account_number')  
    query_begin_time = request.params.get('query_begin_time')  
    query_end_time = request.params.get('query_end_time')  
    _query = db.query(
        models.SlcRadTicket.id,
        models.SlcRadTicket.account_number,
        models.SlcRadTicket.nas_addr,
        models.SlcRadTicket.acct_session_id,
        models.SlcRadTicket.acct_start_time,
        models.SlcRadTicket.acct_input_octets,
        models.SlcRadTicket.acct_output_octets,
        models.SlcRadTicket.acct_stop_time,
        models.SlcRadTicket.framed_ipaddr,
        models.SlcRadTicket.mac_addr,
        models.SlcRadTicket.nas_port_id,
        models.SlcMember.node_id,
        models.SlcMember.realname
    ).filter(
        models.SlcRadTicket.account_number == models.SlcRadAccount.account_number,
        models.SlcMember.member_id == models.SlcRadAccount.member_id,
        models.SlcMember.member_id == get_cookie("customer_id")
    )
    if account_number:
        _query = _query.filter(models.SlcRadTicket.account_number == account_number)
    if query_begin_time:
        _query = _query.filter(models.SlcRadTicket.acct_start_time >= query_begin_time)
    if query_end_time:
        _query = _query.filter(models.SlcRadTicket.acct_stop_time <= query_end_time)

    _query = _query.order_by(models.SlcRadTicket.acct_start_time.desc())
    return render("ticket_list", 
        accounts=db.query(models.SlcRadAccount).filter_by(member_id=get_cookie("customer_id")),
        page_data = get_page_data(_query),
        **request.params)    
コード例 #22
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
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")    
コード例 #23
0
ファイル: customer.py プロジェクト: FoShanTK/ToughRADIUS
def account_recharge(db):
    account_number = request.params.get('account_number')
    form = forms.recharge_form()
    form.recharge_card.set_value('')
    form.recharge_pwd.set_value('')
    form.account_number.set_value(account_number)  
    return render('base_form',form=form)      
コード例 #24
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
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")
コード例 #25
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
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))
コード例 #26
0
def opslog_query(db, render):
    operator_name = request.params.get('operator_name')
    query_begin_time = request.params.get('query_begin_time')
    query_end_time = request.params.get('query_end_time')
    keyword = request.params.get('keyword')
    opr_nodes = get_opr_nodes(db)
    _query = db.query(models.SlcRadOperateLog).filter(
        models.SlcRadOperateLog.operator_name ==
        models.SlcOperator.operator_name, )
    if operator_name:
        _query = _query.filter(
            models.SlcRadOperateLog.operator_name == operator_name)
    if keyword:
        _query = _query.filter(
            models.SlcRadOperateLog.operate_desc.like("%" + keyword + "%"))
    if query_begin_time:
        _query = _query.filter(
            models.SlcRadOperateLog.operate_time >= query_begin_time +
            ' 00:00:00')
    if query_end_time:
        _query = _query.filter(
            models.SlcRadOperateLog.operate_time <= query_end_time +
            ' 23:59:59')
    _query = _query.order_by(models.SlcRadOperateLog.operate_time.desc())
    return render("ops_log_list",
                  node_list=opr_nodes,
                  page_data=get_page_data(_query),
                  **request.params)
コード例 #27
0
def cmanager_update(db, render):
    manager_id = request.params.get("manager_id")
    cmanager = db.query(models.SlcCustomerManager).get(manager_id)
    form = cmanager_forms.cmanage_update_form(
        oprs=get_oprs(db, copr_name=cmanager.operator_name))
    form.fill(cmanager)
    return render("base_form", form=form)
コード例 #28
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def member_detail(db):
    member_id = request.params.get('member_id')
    member = db.query(models.SlcMember).get(member_id)
    accounts = db.query(
        models.SlcMember.realname, models.SlcRadAccount.member_id,
        models.SlcRadAccount.account_number, models.SlcRadAccount.expire_date,
        models.SlcRadAccount.balance, models.SlcRadAccount.time_length,
        models.SlcRadAccount.status, models.SlcRadAccount.last_pause,
        models.SlcRadAccount.create_time, models.SlcRadProduct.product_name,
        models.SlcRadProduct.product_policy).filter(
            models.SlcRadProduct.id == models.SlcRadAccount.product_id,
            models.SlcMember.member_id == models.SlcRadAccount.member_id,
            models.SlcRadAccount.member_id == member_id)
    orders = db.query(
        models.SlcMemberOrder.order_id, models.SlcMemberOrder.order_id,
        models.SlcMemberOrder.product_id, models.SlcMemberOrder.account_number,
        models.SlcMemberOrder.order_fee, models.SlcMemberOrder.actual_fee,
        models.SlcMemberOrder.pay_status, models.SlcMemberOrder.create_time,
        models.SlcMemberOrder.order_desc,
        models.SlcRadProduct.product_name).filter(
            models.SlcRadProduct.id == models.SlcMemberOrder.product_id,
            models.SlcMemberOrder.member_id == member_id)
    return render("bus_member_detail",
                  member=member,
                  accounts=accounts,
                  orders=orders)
コード例 #29
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
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(member_detail_url_formatter(account.member_id))
コード例 #30
0
ファイル: screens.py プロジェクト: Xifax/suzu-web
def index():
    """Main page with random kanji"""
    lock = request.get_cookie("lock", secret="secret")
    session = request.environ.get("beaker.session")

    if lock:
        kanji = Peon(db).get(lock)
    else:
        kanji = Peon(db).random()

    favorites = request.get_cookie("favorites", secret="secret")
    fav = False
    if favorites:
        favorites = json.loads(favorites)
        if kanji.value in favorites:
            fav = True

    radicals = store.get_radicals(kanji.value)

    return render(
        "home",
        kanji=kanji,
        radicals=radicals,
        rad_info=store.get_info_for_all(radicals),
        lock=session.get("toggled", False),
        rolled=lock,
        fav=fav,
        single_item=False,
    )
コード例 #31
0
ファイル: business.py プロジェクト: SuPair/ToughRADIUS-1
def member_open(db):
    nodes = [ (n.id,n.node_name) for n in db.query(models.SlcNode)]
    products = [ (n.id,n.product_name) for n in db.query(models.SlcRadProduct).filter_by(
        product_status = 0
    )]
    form = forms.user_open_form(nodes,products)
    return render("bus_open_form",form=form)
コード例 #32
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
def member_update(db):
    member_id = request.params.get("member_id")
    member = db.query(models.SlcMember).get(member_id)
    nodes = [ (n.id,n.node_name) for n in db.query(models.SlcNode)]
    form = forms.member_update_form(nodes)
    form.fill(member)
    return render("base_form",form=form)
コード例 #33
0
def flow_stat_query(db, render):
    return render(
        "stat_flow",
        node_list=get_opr_nodes(db),
        node_id=None,
        day_code=utils.get_currdate()
    )
コード例 #34
0
ファイル: mps.py プロジェクト: Mark-Shine/ToughRADIUS
def menus(db):   
    menus_data = db.query(models.SlcParam).filter_by(param_name='mps_menus').first()
    if menus_data:
        menus_obj = json.loads(menus_data.param_value) 
    else:
        menus_obj = {}
        menus_obj['button'] = []

    menu_names = {u'精彩推荐': 'menu1', u'产品订购': 'menu2', u'微营业厅': 'menu3'}
    menu_buttons_array = menus_obj['button']

    menudata = {}
    for mbs in menu_buttons_array:
        midx = menu_names[mbs['name']]
        sub_buttons = mbs['sub_button']

        _idx = 1

        for sbmenu in sub_buttons:
            menudata['%s_sub%s_type' % (midx, _idx)] = sbmenu['type']
            menudata['%s_sub%s_name' % (midx, _idx)] = sbmenu['name']
            menudata['%s_sub%s_key' % (midx, _idx)] = sbmenu.get('key', '')
            menudata['%s_sub%s_url' % (midx, _idx)] = sbmenu.get('url', '')
            _idx += 1

    menu_str = json.dumps(menudata, ensure_ascii=False)#.replace('"', '\\"')
    return render("mps_menus", menudata=menu_str)
コード例 #35
0
ファイル: customer.py プロジェクト: SuPair/ToughRADIUS-1
def account_recharge(db):
    account_number = request.params.get('account_number')
    form = forms.recharge_form()
    form.recharge_card.set_value('')
    form.recharge_pwd.set_value('')
    form.account_number.set_value(account_number)
    return render('base_form', form=form)
コード例 #36
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def member_query(db):
    node_id = request.params.get('node_id')
    realname = request.params.get('realname')
    idcard = request.params.get('idcard')
    mobile = request.params.get('mobile')
    _query = db.query(models.SlcMember, models.SlcNode.node_name).filter(
        models.SlcNode.id == models.SlcMember.node_id)
    if idcard:
        _query = _query.filter(models.SlcMember.idcard == idcard)
    if mobile:
        _query = _query.filter(models.SlcMember.mobile == mobile)
    if node_id:
        _query = _query.filter(models.SlcMember.node_id == node_id)
    if realname:
        _query = _query.filter(
            models.SlcMember.realname.like('%' + realname + '%'))

    if request.path == '/member':
        return render("bus_member_list",
                      page_data=get_page_data(_query),
                      node_list=db.query(models.SlcNode),
                      **request.params)
    elif request.path == "/member/export":
        data = Dataset()
        data.append(
            (u'区域', u'姓名', u'用户名', u'证件号', u'邮箱', u'联系电话', u'地址', u'创建时间'))
        for i, _node_name in _query:
            data.append((_node_name, i.realname, i.member_name, i.idcard,
                         i.email, i.mobile, i.address, i.create_time))
        name = u"RADIUS-MEMBER-" + datetime.datetime.now().strftime(
            "%Y%m%d-%H%M%S") + ".xls"
        with open(u'./static/xls/%s' % name, 'wb') as f:
            f.write(data.xls)
        return static_file(name, root='./static/xls', download=True)
コード例 #37
0
ファイル: ops.py プロジェクト: jamiesun/ToughRADIUS
def user_query(db, render):
    node_id = request.params.get("node_id")
    product_id = request.params.get("product_id")
    user_name = request.params.get("user_name")
    status = request.params.get("status")
    opr_nodes = get_opr_nodes(db)
    _query = db.query(models.SlcRadAccount, models.SlcMember.realname, models.SlcRadProduct.product_name).filter(
        models.SlcRadProduct.id == models.SlcRadAccount.product_id,
        models.SlcMember.member_id == models.SlcRadAccount.member_id,
    )
    if node_id:
        _query = _query.filter(models.SlcMember.node_id == node_id)
    else:
        _query = _query.filter(models.SlcMember.node_id.in_([i.id for i in opr_nodes]))
    if product_id:
        _query = _query.filter(models.SlcRadAccount.product_id == product_id)
    if user_name:
        _query = _query.filter(models.SlcRadAccount.account_number.like("%" + user_name + "%"))
    if status:
        _query = _query.filter(models.SlcRadAccount.status == status)

    if request.path == "/user":
        return render(
            "ops_user_list",
            page_data=get_page_data(_query),
            node_list=opr_nodes,
            product_list=db.query(models.SlcRadProduct),
            **request.params
        )
コード例 #38
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def member_update(db):
    member_id = request.params.get("member_id")
    member = db.query(models.SlcMember).get(member_id)
    nodes = [(n.id, n.node_name) for n in db.query(models.SlcNode)]
    form = forms.member_update_form(nodes)
    form.fill(member)
    return render("base_form", form=form)
コード例 #39
0
ファイル: issues.py プロジェクト: shtrend/ToughRADIUS
def issues_process_post(db, render):
    form = issues_forms.issues_process_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    iflow = models.SlcIssuesFlow()
    iflow.issues_id = form.d.issues_id
    iflow.accept_time = utils.get_currtime()
    iflow.accept_status = form.d.accept_status
    iflow.accept_result = form.d.accept_result
    iflow.operator_name = get_cookie("username")
    db.add(iflow)

    issues = db.query(models.SlcIssues).get(iflow.issues_id)
    issues.status = iflow.accept_status

    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"),iflow.issues_id)
    db.add(ops_log)

    db.commit()

    redirect("/issues/detail?issues_id=%s"%iflow.issues_id)
コード例 #40
0
ファイル: ops.py プロジェクト: FoShanTK/ToughRADIUS
def online_stat_query(db): 
    return render(
        "ops_online_stat",
        node_list=db.query(models.SlcNode),
        node_id=None,
        day_code=utils.get_currdate()
    )
コード例 #41
0
def user_query(db, render):
    node_id = request.params.get('node_id')
    product_id = request.params.get('product_id')
    user_name = request.params.get('user_name')
    status = request.params.get('status')
    opr_nodes = get_opr_nodes(db)
    _query = db.query(
        models.SlcRadAccount, models.SlcMember.realname,
        models.SlcRadProduct.product_name).filter(
            models.SlcRadProduct.id == models.SlcRadAccount.product_id,
            models.SlcMember.member_id == models.SlcRadAccount.member_id)
    if node_id:
        _query = _query.filter(models.SlcMember.node_id == node_id)
    else:
        _query = _query.filter(
            models.SlcMember.node_id.in_([i.id for i in opr_nodes]))
    if product_id:
        _query = _query.filter(models.SlcRadAccount.product_id == product_id)
    if user_name:
        _query = _query.filter(
            models.SlcRadAccount.account_number.like('%' + user_name + '%'))
    if status:
        _query = _query.filter(models.SlcRadAccount.status == status)

    if request.path == '/user':
        return render("ops_user_list",
                      page_data=get_page_data(_query),
                      node_list=opr_nodes,
                      product_list=db.query(models.SlcRadProduct),
                      **request.params)
コード例 #42
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
def member_query(db):
    node_id = request.params.get('node_id')
    realname = request.params.get('realname')
    idcard = request.params.get('idcard')
    mobile = request.params.get('mobile')
    _query = db.query(
        models.SlcMember,
        models.SlcNode.node_name
    ).filter(
        models.SlcNode.id == models.SlcMember.node_id
    )
    if idcard:
        _query = _query.filter(models.SlcMember.idcard==idcard)
    if mobile:
        _query = _query.filter(models.SlcMember.mobile==mobile)
    if node_id:
        _query = _query.filter(models.SlcMember.node_id == node_id)
    if realname:
        _query = _query.filter(models.SlcMember.realname.like('%'+realname+'%'))

    if request.path == '/member':
        return render("bus_member_list", page_data = get_page_data(_query),
                       node_list=db.query(models.SlcNode),**request.params)
    elif request.path == "/member/export":
        data = Dataset()
        data.append((u'区域',u'姓名',u'用户名',u'证件号',u'邮箱', u'联系电话', u'地址', u'创建时间'))
        for i,_node_name in _query:
            data.append((
                _node_name, i.realname, i.member_name,i.idcard,
                i.email,i.mobile, i.address,i.create_time
            ))
        name = u"RADIUS-MEMBER-" + datetime.datetime.now().strftime("%Y%m%d-%H%M%S") + ".xls"
        with open(u'./static/xls/%s' % name, 'wb') as f:
            f.write(data.xls)
        return static_file(name, root='./static/xls',download=True)
コード例 #43
0
ファイル: cmanager.py プロジェクト: zhangbinglxf/ToughRADIUS
def cmanager_list(db, render):
    manager_code = request.params.get("manager_code")
    _query = db.query(models.SlcCustomerManager)
    if manager_code:
        _query = _query.filter_by(manager_code=manager_code)

    return render("sys_cmanager_list", page_data=get_page_data(_query), **request.params)
コード例 #44
0
def ticket_query(db):
    account_number = request.params.get('account_number')
    query_begin_time = request.params.get('query_begin_time')
    query_end_time = request.params.get('query_end_time')
    _query = db.query(
        models.SlcRadTicket.id, models.SlcRadTicket.account_number,
        models.SlcRadTicket.nas_addr, models.SlcRadTicket.acct_session_id,
        models.SlcRadTicket.acct_start_time,
        models.SlcRadTicket.acct_input_octets,
        models.SlcRadTicket.acct_output_octets,
        models.SlcRadTicket.acct_stop_time, models.SlcRadTicket.framed_ipaddr,
        models.SlcRadTicket.mac_addr, models.SlcRadTicket.nas_port_id,
        models.SlcMember.node_id, models.SlcMember.realname).filter(
            models.SlcRadTicket.account_number ==
            models.SlcRadAccount.account_number,
            models.SlcMember.member_id == models.SlcRadAccount.member_id,
            models.SlcMember.member_id == get_cookie("customer_id"))
    if account_number:
        _query = _query.filter(
            models.SlcRadTicket.account_number == account_number)
    if query_begin_time:
        _query = _query.filter(
            models.SlcRadTicket.acct_start_time >= query_begin_time)
    if query_end_time:
        _query = _query.filter(
            models.SlcRadTicket.acct_stop_time <= query_end_time)

    _query = _query.order_by(models.SlcRadTicket.acct_start_time.desc())
    return render("ticket_list",
                  accounts=db.query(models.SlcRadAccount).filter_by(
                      member_id=get_cookie("customer_id")),
                  page_data=get_page_data(_query),
                  **request.params)
コード例 #45
0
ファイル: issues.py プロジェクト: travislee8964/ToughRADIUS
def issues_process_post(db, render):
    form = issues_forms.issues_process_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    iflow = models.SlcIssuesFlow()
    iflow.issues_id = form.d.issues_id
    iflow.accept_time = utils.get_currtime()
    iflow.accept_status = form.d.accept_status
    iflow.accept_result = form.d.accept_result
    iflow.operator_name = get_cookie("username")
    db.add(iflow)

    issues = db.query(models.SlcIssues).get(iflow.issues_id)
    issues.status = iflow.accept_status

    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"),
                                               iflow.issues_id)
    db.add(ops_log)

    db.commit()

    redirect("/issues/detail?issues_id=%s" % iflow.issues_id)
コード例 #46
0
def opslog_query(db):
    node_id = request.params.get('node_id')
    operator_name = request.params.get('operator_name')
    query_begin_time = request.params.get('query_begin_time')
    query_end_time = request.params.get('query_end_time')
    _query = db.query(
        models.SlcRadOperateLog,
        models.SlcOperator.node_id,
    ).filter(
        models.SlcRadOperateLog.operator_name ==
        models.SlcOperator.operator_name, )
    if node_id:
        _query = _query.filter(models.SlcOperator.node_id == node_id)
    if operator_name:
        _query = _query.filter(
            models.SlcRadOperateLog.operator_name == operator_name)
    if query_begin_time:
        _query = _query.filter(
            models.SlcRadOperateLog.operate_time >= query_begin_time)
    if query_end_time:
        _query = _query.filter(
            models.SlcRadOperateLog.operate_time <= query_end_time)
    _query = _query.order_by(models.SlcRadOperateLog.operate_time.desc())
    return render("ops_log_list",
                  node_list=db.query(models.SlcNode),
                  page_data=get_page_data(_query),
                  **request.params)
コード例 #47
0
def billing_query(db):
    account_number = request.params.get('account_number')
    query_begin_time = request.params.get('query_begin_time')
    query_end_time = request.params.get('query_end_time')
    _query = db.query(
        models.SlcRadBilling,
        models.SlcMember.node_id,
    ).filter(
        models.SlcRadBilling.account_number ==
        models.SlcRadAccount.account_number,
        models.SlcMember.member_id == models.SlcRadAccount.member_id,
        models.SlcMember.member_id == get_cookie("customer_id"))
    if account_number:
        _query = _query.filter(
            models.SlcRadBilling.account_number.like('%' + account_number +
                                                     '%'))
    if query_begin_time:
        _query = _query.filter(
            models.SlcRadBilling.create_time >= query_begin_time)
    if query_end_time:
        _query = _query.filter(
            models.SlcRadBilling.create_time <= query_end_time)
    _query = _query.order_by(models.SlcRadBilling.create_time.desc())
    return render("billing_list",
                  accounts=db.query(models.SlcRadAccount).filter_by(
                      member_id=get_cookie("customer_id")),
                  page_data=get_page_data(_query),
                  **request.params)
コード例 #48
0
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")
コード例 #49
0
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")
コード例 #50
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    account = db.query(models.SlcRadAccount).get(account_number)
    user = query_account(db,account_number)
    form = forms.account_next_form()
    form.product_id.set_value(user.product_id)
    if account.status not in (1,4):
        return render("bus_account_next_form", user=user,form=form,msg=u"无效用户状态")
    if not form.validates(source=request.forms):
        return render("bus_account_next_form", user=user,form=form)

    accept_log = models.SlcRadAcceptLog()
    accept_log.accept_type = 'next'
    accept_log.accept_source = 'console'
    accept_log.accept_desc = u"用户续费:上网账号:%s,续费%s元"%(account_number,form.d.fee_value)
    accept_log.account_number = form.d.account_number
    accept_log.accept_time = utils.get_currtime()
    accept_log.operator_name = get_cookie("username")
    db.add(accept_log)
    db.flush()
    db.refresh(accept_log)

    order_fee = 0
    product = db.query(models.SlcRadProduct).get(user.product_id)
    order_fee = decimal.Decimal(product.fee_price) * decimal.Decimal(form.d.months)
    order_fee = int(order_fee.to_integral_value())

    order = models.SlcMemberOrder()
    order.order_id = utils.gen_order_id()
    order.member_id = user.member_id
    order.product_id = user.product_id
    order.account_number = form.d.account_number
    order.order_fee = order_fee
    order.actual_fee = utils.yuan2fen(form.d.fee_value)
    order.pay_status = 1
    order.accept_id = accept_log.id
    order.order_source = 'console'
    order.create_time = utils.get_currtime()
    order.order_desc = u"用户续费"
    db.add(order)

    account.status = 1
    account.expire_date = form.d.expire_date

    db.commit()
    websock.update_cache("account",account_number=account_number)
    redirect(member_detail_url_formatter(user.member_id))
コード例 #51
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    account = db.query(models.SlcRadAccount).get(account_number)
    user = query_account(db,account_number)
    form = forms.account_cancel_form()
    if account.status !=1 :
        return render("bus_account_form", user=user,form=form,msg=u"无效用户状态")
    if not form.validates(source=request.forms):
        return render("bus_account_form", user=user,form=form)

    accept_log = models.SlcRadAcceptLog()
    accept_log.accept_type = 'cancel'
    accept_log.accept_source = 'console'
    accept_log.account_number = form.d.account_number
    accept_log.accept_time = utils.get_currtime()
    accept_log.operator_name = get_cookie("username")
    accept_log.accept_desc = u"用户销户:上网账号:%s,退费%s(元)"%(account_number,form.d.fee_value)
    db.add(accept_log)
    db.flush()
    db.refresh(accept_log)

    order = models.SlcMemberOrder()
    order.order_id = utils.gen_order_id()
    order.member_id = user.member_id
    order.product_id = user.product_id
    order.account_number = form.d.account_number
    order.order_fee = 0
    order.actual_fee = -utils.yuan2fen(form.d.fee_value)
    order.pay_status = 1
    order.order_source = 'console'
    order.accept_id = accept_log.id
    order.create_time = utils.get_currtime()
    order.order_desc = u'用户销户'
    db.add(order)

    account.status = 3

    db.commit()

    websock.update_cache("account",account_number=account_number)
    onlines = db.query(models.SlcRadOnline).filter_by(account_number=account_number)
    for _online in onlines:
        websock.invoke_admin("coa_request",
            nas_addr=_online.nas_addr,
            acct_session_id=_online.acct_session_id,
            message_type='disconnect')
    redirect(member_detail_url_formatter(user.member_id))
コード例 #52
0
def account_update(db): 
    account_number = request.params.get("account_number")
    account = db.query(models.SlcRadAccount).get(account_number)
    groups = [ (n.id,n.group_name) for n in db.query(models.SlcRadGroup)]
    groups.insert(0,('',''))
    form = forms.account_update_form(groups)
    form.fill(account)
    return render("base_form",form=form)
コード例 #53
0
ファイル: business.py プロジェクト: FoShanTK/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    user = query_account(db,account_number)
    form = forms.account_next_form()
    form.account_number.set_value(account_number)
    form.old_expire.set_value(user.expire_date)
    form.product_id.set_value(user.product_id)
    return render("bus_account_next_form",user=user,form=form)
コード例 #54
0
ファイル: admin.py プロジェクト: FoShanTK/ToughRADIUS
def product_update(db):  
    product_id = request.params.get("product_id")
    form=forms.product_update_form()
    product = db.query(models.SlcRadProduct).get(product_id)
    form.fill(product)
    form.product_policy_name.set_value(forms.product_policy[product.product_policy])
    form.fee_price.set_value(utils.fen2yuan(product.fee_price))
    return render("sys_product_form",form=form)
コード例 #55
0
ファイル: business.py プロジェクト: gaopinming/ToughRADIUS
def account_next(db):
    account_number = request.params.get("account_number")
    user = query_account(db, account_number)
    form = forms.account_next_form()
    form.account_number.set_value(account_number)
    form.old_expire.set_value(user.expire_date)
    form.product_id.set_value(user.product_id)
    return render("bus_account_next_form", user=user, form=form)
コード例 #56
0
def member_login_post(db):
    next = request.params.get("next", "/")
    form = forms.member_login_form()
    if not form.validates(source=request.params):
        return render("login", form=form)

    member = db.query(models.SlcMember).filter_by(
        member_name=form.d.username,
        password=md5(form.d.password.encode()).hexdigest()).first()

    if not member:
        return render("login", form=form, msg=u"用户名密码不符合")

    set_cookie('customer_id', member.member_id)
    set_cookie('customer', form.d.username)
    set_cookie('customer_login_time', utils.get_currtime())
    set_cookie('customer_login_ip', request.remote_addr)
    redirect(next)
コード例 #57
0
def product_update(db):
    product_id = request.params.get("product_id")
    form = forms.product_update_form()
    product = db.query(models.SlcRadProduct).get(product_id)
    form.fill(product)
    form.product_policy_name.set_value(
        forms.product_policy[product.product_policy])
    form.fee_price.set_value(utils.fen2yuan(product.fee_price))
    return render("sys_product_form", form=form)
コード例 #58
0
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")