Exemple #1
0
def forgot():
    client=currentSession()
    form = ForgotForm(request.form)
    if request.method == 'POST':
        if not form.validate():
            return render_template('forgot.html', form=form, client=client)
        else:
            user = client.getUserByEmail(form.email.data)
            m = Mail()
            e = Crypto()
            # get encrypted link
            encrypted = e.encrypt(user.id, True)
            # email link
            result = m.send_forgot_password(user.email, encrypted)
            form.email.errors.append(result)
            return render_template('forgot.html', form=form, client=client)
    else:
        return render_template('forgot.html', form=form, client=client)
Exemple #2
0
def forgot():
    session.pop('email', None)
    form = ForgotForm(request.form)
    if request.method == 'POST':
        if not form.validate():
            return render_template('forgot.html', form=form, user=get_user())
        else:
            user = User.query.filter_by(email=form.email.data.lower()).first()
            m = mail.mail()
            e = crypto.crypto()
            # get encrypted link
            encrypted = e.encrypt(user.id, True)
            # email link
            result = m.send_forgot_password(user.email, encrypted)
            form.email.errors.append(result)
            return render_template('forgot.html', form=form, user=get_user())
    else:
        return render_template('forgot.html', form=form, user=get_user())
Exemple #3
0
def forgot():
    form = ForgotForm(request.form)

    if request.method == 'POST' and form.validate():
        email = form.email.data
        user = Users.get_one(email=email)
        if not user:
            form.email.errors = ['No such user']
            context = {'form': form}
            return render_template('forgot.html', **context)

        chars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789"
        password = ''.join(map(lambda x: random.choice(chars), range(8)))
        user.set_password(password)
        user.save()

        send_email(user, password)
        return redirect('/signin')
    else:
        context = {'form': form}
        return render_template('forgot.html', **context)
Exemple #4
0
def forgot():
    if 'email' in session:
        return redirect(url_for('home'))

    form = ForgotForm()

    if request.method == "POST":
        if form.validate() == False:
            return render_template("forgot.html", form=form)
        else:
            email = form.email.data
            password = form.password.data

            login_result = ln.update(email, password)
            if login_result['flag'] == True:
                return redirect(url_for('login'))
            else:
                return redirect(url_for('forgot'))

    elif request.method == 'GET':
        return render_template('forgot.html', form=form)
Exemple #5
0
def forgot():
    forgotform = ForgotForm()
    if forgotform.validate():
        reset_link = generate_password_reset_link(forgotform.email.data)
        if reset_link is None:
            flash(_(u'Could not find user with given email'), 'error')
        else:
            msg = Message(_(u"Troikalearning.org password reset"),
                      sender = ("Troika Webmaster", "*****@*****.**"),
                      recipients=[forgotform.email.data])
        
            msg.body = _("Go to the following link to reset your password in the troikalearning.org website:")
            msg.body += "\n\n" + reset_link
            msg.body += "\n\n"
            msg.body += _("If you did not ask for your password to be reset, you can ignore this message.")
            msg.body += "\n\n"
            msg.body += __get_troika_message_signature()    
            mail.send(msg)
            flash(_(u'Password reset instructions sent to %(email)s', email = forgotform.email.data))
    else:
        flash(_(u"Invalid forgot form") + ': ' + ', '.join((key + ': ' + value[0]) for key, value in forgotform.errors.items()), 'error')
    return redirect(get_redirect_target())