예제 #1
0
파일: auth.py 프로젝트: acmchen/OnlineTest
def confirm_email(token):
    success = 'You have replaced your password successfully!'
    failed = 'The confirmation link is invalid or has expired.'
    url_f = url_for('web.getback')
    url_s = url_for('web.login')
    form = ReplacePasswdForm()
    try:
        email = verify_email_token(token)
        if email is None:
            return render_template("web/failed.html", failed=failed, url=url_f)
    except:
        return render_template("web/falied.html", failed=failed, url=url_f)

    if request.method == 'GET':
        return render_template('web/auth/update_password.html', form=form)

    if form.validate_on_submit():
        password = form.password.data
        password_again = form.password_again.data
        try:
            user = UserService.get_userinfo_by_email(email['email'])
            user.password = password_again
            UserService.update_userpasswd_by_confirm(user)
            flash(u"您的密码已经成功更新,请登录")
            return redirect(url_for('web.logout'))
        except:
            flash(u"您的密码更新失败,请重试")
            return redirect(url_for('web.confirm_email', token=token))

    return render_template('web/auth/update_password.html', form=form)
예제 #2
0
파일: auth.py 프로젝트: acmchen/OnlineTest
def getback():
    form = GetbackPwdForm()

    if request.method == 'GET':
        return render_template('web/auth/forgotpwd.html', form=form)

    if form.validate_on_submit():
        username = form.username.data
        email = form.email.data
        user = UserService.get_userinfo_by_email(email)
        if user is None or username != user.user_name:
            flash(u'您的用户名和邮箱不匹配,请确认后重新输入')
            return redirect(url_for('web.getback'))

        token = generate_email_token(email)
        confirm_url = url_for('web.confirm_email', token=token, external=True)
        html = 'Please click url to finishing confirm. After, you can replace your password.<br>' + confirm_url
        sender = '*****@*****.**'
        subject = 'OnlineTest Confirm Email'
        try:
            send_email(subject, sender, email, html)
            flash('Your confirm email send successful! :)', 'success')
        except:
            flash('Your confirm email send failed :(', 'danger')

        return redirect(url_for('web.getback'))
    return render_template('web/auth/forgotpwd.html', form=form)