示例#1
0
    def GET(self, code):
        docs = web.ctx.site.store.values(type="account-link", name="code", value=code)
        if not docs:
            title = _("Password reset failed.")
            message = "Your password reset link seems invalid or expired."
            return render.message(title, message)

        f = forms.ResetPassword()
        return render['account/password/reset'](f)
示例#2
0
class account_password_reset_old(delegate.page):
    path = "/account/password/reset"

    def GET(self):
        i = web.input(username='', code='')

        try:
            web.ctx.site.check_reset_code(i.username, i.code)
        except ClientException, e:
            title = _("Password reset failed.")
            message = web.safestr(e)
            return render.message(title, message)

        f = forms.ResetPassword()
        return render['account/password/reset'](f)
示例#3
0
def forgot_password():
    """
    Route to reset a student's password.
    """
    form = forms.ResetPassword()
    # TODO: Handle token creation for password reset
    # token = request.args.get('token', None)
    # form = forms.ResetPassword(request.form)
    # if form.validate_on_submit():
    #     email = form.email.data
    #     student = student.query.filter_by(email=email).first()
    #     if student:
    #         token = student.get_token()
    #         print token
    return render_template('reset.html', form=form, title='Reset Password')
示例#4
0
def reset_password(user_id):
    if user_id != current_user.id:
        abort(404)
    else:
        form = forms.ResetPassword()
        if form.validate_on_submit():
            if not check_password_hash(current_user.password,
                                       form.current_password.data):
                flash("Current Password Incorrect", "error")
            else:
                models.User.reset_password(current_user.id,
                                           form.new_password.data)
                flash("Password Reset", "success")
                return redirect(
                    url_for('login_details', user_id=current_user.id))
        return render_template("reset_password.html",
                               current_basket=g.current_basket,
                               form=form)
示例#5
0
            return render.message(title, message)

        f = forms.ResetPassword()
        return render['account/password/reset'](f)

    def POST(self):
        i = web.input(username='', code='')

        try:
            web.ctx.site.check_reset_code(i.username, i.code)
        except ClientException, e:
            title = _("Password reset failed.")
            message = web.safestr(e)
            return render.message(title, message)

        f = forms.ResetPassword()

        if not f.validates(i):
            return render['account/password/reset'](f)

        web.ctx.site.update_account(i.username, password=i.password)
        add_flash_message('info',
                          _("Your password has been updated successfully."))
        raise web.seeother('/account/login')


class account_notifications(delegate.page):
    path = "/account/notifications"

    @require_login
    def GET(self):