Example #1
0
def reset_password():
    form = ResetPasswordForm(request.form)

    if request.method == "POST" and form.validate():
        token = form.token.data

        s = Signer(app.config['SECRET_KEY'])

        try:
            email = s.unsign(token)
        except BadSignature:
            return render_template("reset_invalid_token.html")

        user = User.query.filter_by(email=email).first()

        if user:
            user.set_password(form.password.data)

            print user.password

            login_user(user)

            return redirect("/")
        else:
            return render_template("reset_invalid_token.html")

    token = request.args.get('token', None)

    if not token:
        return render_template("reset_invalid_token.html")

    return render_template("reset_password.html", form=form, token=token)
Example #2
0
def reset_password():
    form = ResetPasswordForm(request.form)

    if request.method == "POST" and form.validate():
        token = form.token.data

        s = Signer(app.config['SECRET_KEY'])

        try:
            email = s.unsign(token)
        except BadSignature:
            return render_template("reset_invalid_token.html")

        user = User.query.filter_by(email=email).first()

        if user:
            user.set_password(form.password.data)

            print user.password

            login_user(user)

            return redirect("/")
        else:
            return render_template("reset_invalid_token.html")

    token = request.args.get('token', None)

    if not token:
        return render_template("reset_invalid_token.html")

    return render_template("reset_password.html", form=form, token=token)
Example #3
0
def reset_password():
    if request.method == "POST":
        form = ResetPasswordForm( request.form)
        if( form.validate()):
            user = User.objects.get( email=form.email.data)
            password_reset_token = user.generate_password_reset_token()

            host = request.headers["HOST"]
            link = "http://%s/accounts/password/reset/%s" % (host, password_reset_token)

            mesg = "Hi %s,\n\nSomeone (probably you) requested for a password reset at %s. Please visit the following link if you wish to reset your password:\n\n%s\n\nHave a good day!" % (user.name, host, link)
            send_mail( "[%s] Reset Password" % host, mesg, current_app.config["SERVER_EMAIL"], [user.email], fail_silently=False)

            flash( "Sent you a mail to reset the password. Do remember to check your spam folder as well.", "success")

    form = ResetPasswordForm()
    return render_template( "auth/reset_password.html", **locals())
Example #4
0
def reset_password_request():
    """
    验证输入并发送修改密码的邮箱验证
    """

    if request.method == 'GET':
        return render_template('auth/reset_password.html')
    if request.method == 'POST':
        g.re = {'status': True, 'data': {}}

        data = loads(request.get_data(), encoding='utf-8')

        print data

        resetpwd_data = data['data']
        email = resetpwd_data['email']
        password1 = resetpwd_data['passwordRS1']
        password2 = resetpwd_data['passwordRS2']

        form = ResetPasswordForm(email=email,
                                 password1=password1,
                                 password2=password2)
        if form.validate():
            if g.re['status']:
                user = User.query.filter_by(email=email).first()
                token = user.generate_resetpwd_token(password1)
                send_email(user.email, u'请验证您的账户并完成密码修改', 'auth/email/resetpwd_confirm',
                           user=user, token=token)
                response_messages(g.re, title=u'邮箱验证', content=u'请查收验证邮件并及时完成验证!')
                return jsonify(g.re)
            else:
                return jsonify(g.re)
        else:
            re = g.re
            re['status'] = False
            for key, value in form.errors.items():
                print key + ':' + str(value[0])
                re['data'][key] = value[0]
            return jsonify(re)
Example #5
0
def reset_password():
    if current_user.is_authenticated:
        return render_view(url_for('latest'),
                           redirect=True,
                           message=_('SESSIONS_MSG_ALREADY_SIGNED_IN'))

    code = request.values.get('code', None)
    user = User.find_by_reset_password_code(code)

    if not user:
        return render_view(url_for('sessions.forgot_password'),
                           redirect=True,
                           message=_('ERROR_INVALID_RESET_PASSWORD_CODE'))

    form = ResetPasswordForm(user=user)

    if form.is_submitted():
        try:
            if not form.validate():
                raise Exception(_('ERROR_INVALID_SUBMISSION'))

            if not verify_captcha():
                raise Exception(_('SESSIONS_ERROR_UNFINISHED_CHALLENGE_LBL'))

            user.set_password(form.password.data)
            user.reset_password = None

            # store the user
            user.save()

            return render_view(
                url_for('sessions.login'),
                redirect=True,
                message=_('SESSIONS_MSG_PASSWORD_RESET_COMPLETED'))

        except Exception as e:
            flash(e.message, 'error')

    return render_view('admin/sessions/reset_password.html', form=form)
def reset():
    form = ResetPasswordForm(request.form)
    if request.method == 'POST' and form.validate():
        user = db.retrieve_user_by_email(form.email.data)
        if not user:
            form.email.errors.append('Email address not found')

        #  generate 6 chars random password
        generated_password = ''.join([random.choice(string.ascii_letters + string.digits) for _ in range(6)])

        #  change password
        db.change_password(user.username, user.generate_hash(generated_password))

        #  generate email message
        email_msg = render_template('email/reset_password.html',
                                    username=user.username,
                                    new_password=generated_password)

        #  send email
        send_email(recipient=user.email, subject='Reset Password', template=email_msg)

        flash('New password was sent to your email account, please check your inbox')
        return redirect(url_for('home'))
    return render_template('reset.html', form=form, title='Forgot Password')