Exemplo n.º 1
0
def password_reset_mail(db):
    form = forms.password_mail_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    last_send = get_cookie("last_send_active")
    if last_send:
        sec = int(time.time()) - int(float(last_send))
        if sec < 60:
            return render("error", msg=u"每间隔60秒才能提交一次,还需等待%s秒" % int(60 - sec))
    set_cookie("last_send_active", str(time.time()))
    member_name = request.params.get("member_name")
    member = db.query(
        models.SlcMember).filter_by(member_name=member_name).first()
    if not member:
        return render("error", msg=u"用户不存在")
    try:
        member.active_code = utils.get_uuid()
        db.commit()
        topic = u'%s,请重置您在%s的密码' % (
            member.realname, get_param_value(db, "customer_system_name"))
        ctx = dict(username=member.realname,
                   customer_name=get_param_value(db, "customer_system_name"),
                   customer_url=get_param_value(db, "customer_system_url"),
                   active_code=member.active_code)
        reactor.callInThread(mail.sendmail, member.email, topic,
                             render("pwdmail", **ctx))
        return render("msg",
                      msg=u"激活邮件已经发送置您的邮箱 *****%s,请注意查收。" %
                      member.email[member.email.find('@'):])
    except:
        return render('error', msg=u"激活邮件发送失败,请稍后再试")
Exemplo n.º 2
0
def password_reset_mail(db):
    form = forms.password_mail_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    last_send = get_cookie("last_send_active") 
    if last_send:
        sec = int(time.time()) - int(float(last_send))
        if sec < 60:
            return render("error",msg=u"每间隔60秒才能提交一次,还需等待%s秒"% int(60-sec))
    set_cookie("last_send_active", str(time.time()))
    member_name = request.params.get("member_name")
    member = db.query(models.SlcMember).filter_by(member_name=member_name).first()
    if not member:
        return render("error",msg=u"用户不存在")
    try:
        member.active_code = utils.get_uuid()
        db.commit()
        topic = u'%s,请重置您在%s的密码'%(member.realname,get_param_value(db,"customer_system_name"))
        ctx = dict(
            username = member.realname,
            customer_name = get_param_value(db,"customer_system_name"),
            customer_url = get_param_value(db,"customer_system_url"),
            active_code = member.active_code
        )
        reactor.callInThread(mail.sendmail,member.email,topic,render("pwdmail",**ctx))
        return render("msg",msg=u"激活邮件已经发送置您的邮箱 *****%s,请注意查收。"%member.email[member.email.find('@'):])  
    except :
        return render('error',msg=u"激活邮件发送失败,请稍后再试")  
Exemplo n.º 3
0
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()
    member.email_active = 0
    member.mobile_active = 0
    member.active_code = utils.get_uuid()
    db.add(member)
    db.commit()

    topic = u'%s,请验证您在%s注册的电子邮件地址' % (
        member.realname, get_param_value(db, "customer_system_name"))
    ctx = dict(username=member.realname,
               customer_name=get_param_value(db, "customer_system_name"),
               customer_url=get_param_value(db, "customer_system_url"),
               active_code=member.active_code)
    reactor.callInThread(mail.sendmail, member.email, topic,
                         render("mail", **ctx))
    return render('msg', msg=u"新用户注册成功,请注意查收您的注册邮箱,及时激活账户")
Exemplo n.º 4
0
def account_recharge(db):
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    if member.email_active == 0 and get_param_value(db,"customer_must_active") == "1":
        return render("error",msg=u"激活您的电子邮箱才能使用此功能")    
    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)      
Exemplo n.º 5
0
def account_recharge(db):
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    if member.email_active == 0 and get_param_value(
            db, "customer_must_active") == "1":
        return render("error", msg=u"激活您的电子邮箱才能使用此功能")
    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)
Exemplo n.º 6
0
def email_reactive(db):
    last_send = get_cookie("last_send_active")
    if last_send:
        sec = int(time.time()) - int(float(last_send))
        if sec < 60:
            return dict(code=1, msg=u"每间隔60秒才能发送一次,还需等待%s秒" % int(60 - sec))

    set_cookie("last_send_active", str(time.time()))
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    try:
        topic = u'%s,请验证您在%s注册的电子邮件地址' % (
            member.realname, get_param_value(db, "customer_system_name"))
        ctx = dict(username=member.realname,
                   customer_name=get_param_value(db, "customer_system_name"),
                   customer_url=get_param_value(db, "customer_system_url"),
                   active_code=member.active_code)
        reactor.callInThread(mail.sendmail, member.email, topic,
                             render("mail", **ctx))
        return dict(code=0, msg=u"激活邮件已经发送")
    except:
        return dict(code=0, msg=u"激活邮件发送失败,请稍后再试")
Exemplo n.º 7
0
def email_reactive(db):
    last_send = get_cookie("last_send_active") 
    if last_send:
        sec = int(time.time()) - int(float(last_send))
        if sec < 60:
            return dict(code=1,msg=u"每间隔60秒才能发送一次,还需等待%s秒"% int(60-sec))

    set_cookie("last_send_active", str(time.time()))
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    try:
        topic = u'%s,请验证您在%s注册的电子邮件地址'%(member.realname,get_param_value(db,"customer_system_name"))
        ctx = dict(
            username = member.realname,
            customer_name = get_param_value(db,"customer_system_name"),
            customer_url = get_param_value(db,"customer_system_url"),
            active_code = member.active_code
        )
        reactor.callInThread(mail.sendmail,member.email,topic,render("mail",**ctx))
        return dict(code=0,msg=u"激活邮件已经发送")  
    except :
        return dict(code=0,msg=u"激活邮件发送失败,请稍后再试")   
Exemplo n.º 8
0
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()
    member.email_active = 0
    member.mobile_active = 0
    member.active_code = utils.get_uuid()
    db.add(member) 
    db.commit()
    
    topic = u'%s,请验证您在%s注册的电子邮件地址'%(member.realname,get_param_value(db,"customer_system_name"))
    ctx = dict(
        username = member.realname,
        customer_name = get_param_value(db,"customer_system_name"),
        customer_url = get_param_value(db,"customer_system_url"),
        active_code = member.active_code
    )
    reactor.callInThread(mail.sendmail,member.email,topic,render("mail",**ctx))
    return render('msg',msg=u"新用户注册成功,请注意查收您的注册邮箱,及时激活账户")
Exemplo n.º 9
0
def member_update(db):
    form = forms.member_update_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    oldemail = member.email
    member.realname = form.d.realname
    if form.d.new_password:
        member.password = md5(form.d.new_password.encode()).hexdigest()
    member.email = form.d.email
    member.address = form.d.address

    if oldemail != member.email:
        member.email_active = 0
        member.active_code = utils.get_uuid()

    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()

    if member.email and (oldemail != member.email):
        topic = u'%s,请验证您在%s注册的电子邮件地址' % (
            member.realname, get_param_value(db, "customer_system_name"))
        ctx = dict(username=member.realname,
                   customer_name=get_param_value(db, "customer_system_name"),
                   customer_url=get_param_value(db, "customer_system_url"),
                   active_code=member.active_code)
        reactor.callInThread(mail.sendmail, member.email, topic,
                             render("mail", **ctx))
        return render("msg", msg=u"您修改了email地址,系统已发送激活邮件,请重新激活绑定")
    else:
        return redirect("/")
Exemplo n.º 10
0
def member_update(db):
    form=forms.member_update_form()
    if not form.validates(source=request.forms):
        return render("base_form", form=form)

    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    oldemail = member.email
    member.realname = form.d.realname
    if form.d.new_password:
        member.password =  md5(form.d.new_password.encode()).hexdigest()
    member.email = form.d.email
    member.address = form.d.address
    
    if oldemail != member.email:
        member.email_active = 0
        member.active_code = utils.get_uuid()
    
    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()
    
    if member.email and (oldemail != member.email):
        topic = u'%s,请验证您在%s注册的电子邮件地址'%(member.realname,get_param_value(db,"customer_system_name"))
        ctx = dict(
            username = member.realname,
            customer_name = get_param_value(db,"customer_system_name"),
            customer_url = get_param_value(db,"customer_system_url"),
            active_code = member.active_code
        )
        reactor.callInThread(mail.sendmail,member.email,topic,render("mail",**ctx))
        return render("msg",msg=u"您修改了email地址,系统已发送激活邮件,请重新激活绑定")
    else:
        return redirect("/")
Exemplo n.º 11
0
def account_open(db):
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    if member.email_active == 0 and get_param_value(db,"customer_must_active") == "1":
        return render("error",msg=u"激活您的电子邮箱才能使用此功能")
    
    r = ['0','1','2','3','4','5','6','7','8','9']
    rg = utils.random_generator
    def random_account():
        _num = ''.join([rg.choice(r) for _ in range(9)])
        if db.query(models.SlcRadAccount).filter_by(account_number=_num).count() > 0:
            return random_account()
        else:
            return _num

    form = forms.account_open_form()
    form.recharge_card.set_value('')
    form.recharge_pwd.set_value('')
    form.account_number.set_value(random_account())
    return render('card_open_form',form=form)    
Exemplo n.º 12
0
def account_open(db):
    member = db.query(models.SlcMember).get(get_cookie("customer_id"))
    if member.email_active == 0 and get_param_value(
            db, "customer_must_active") == "1":
        return render("error", msg=u"激活您的电子邮箱才能使用此功能")

    r = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
    rg = utils.random_generator

    def random_account():
        _num = ''.join([rg.choice(r) for _ in range(9)])
        if db.query(models.SlcRadAccount).filter_by(
                account_number=_num).count() > 0:
            return random_account()
        else:
            return _num

    form = forms.account_open_form()
    form.recharge_card.set_value('')
    form.recharge_pwd.set_value('')
    form.account_number.set_value(random_account())
    return render('card_open_form', form=form)
Exemplo n.º 13
0
def portal_auth(db):
    user = request.params.get("user")
    token = request.params.get("token")
    if not user:return abort(403,'user is empty')
    if not token:return abort(403,'token is empty')
    account = db.query(models.SlcRadAccount).filter_by(
        account_number=user
    ).first()
    if not account:
        return abort(403,'user not exists')
    secret = get_param_value(db,"portal_secret")
    date = utils.get_currdate()
    _token = md5("%s%s%s%s"%(user,utils.decrypt(account.password),secret,date)).hexdigest()
    if _token == token:
        member = db.query(models.SlcMember).get(account.member_id)
        set_cookie('customer_id',member.member_id,path="/")
        set_cookie('customer',member.member_name,path="/")
        set_cookie('customer_login_time', utils.get_currtime(),path="/")
        set_cookie('customer_login_ip', request.remote_addr,path="/") 
        redirect("/")
    else:
        return abort(403,'token is invalid')
Exemplo n.º 14
0
def portal_auth(db):
    user = request.params.get("user")
    token = request.params.get("token")
    if not user: return abort(403, 'user is empty')
    if not token: return abort(403, 'token is empty')
    account = db.query(
        models.SlcRadAccount).filter_by(account_number=user).first()
    if not account:
        return abort(403, 'user not exists')
    secret = get_param_value(db, "portal_secret")
    date = utils.get_currdate()
    _token = md5(
        "%s%s%s%s" %
        (user, utils.decrypt(account.password), secret, date)).hexdigest()
    if _token == token:
        member = db.query(models.SlcMember).get(account.member_id)
        set_cookie('customer_id', member.member_id, path="/")
        set_cookie('customer', member.member_name, path="/")
        set_cookie('customer_login_time', utils.get_currtime(), path="/")
        set_cookie('customer_login_ip', request.remote_addr, path="/")
        redirect("/")
    else:
        return abort(403, 'token is invalid')
Exemplo n.º 15
0
 def _sys_param_value(self,pname):
     with Connect(self.sqla_pg.new_session) as db:
         return get_param_value(db,pname)
Exemplo n.º 16
0
 def _sys_param_value(self, pname):
     with Connect(self.sqla_pg.new_session) as db:
         return get_param_value(db, pname)