Ejemplo n.º 1
0
def resend_confirm_email():
    if current_user.confirmed:
        return redirect(url_for('main.index'))

    token = generate_token(user=current_user, operation=Operations.CONFIRM)
    send_confirm_email(user=current_user, token=token)
    flash('New email sent, check your inbox.', 'info')
    return redirect(url_for('main.index'))
Ejemplo n.º 2
0
def change_email_request():
    form = ChangeEmailForm()
    if form.validate_on_submit():
        new_email = form.email.data.lower()
        token = generate_token(user=current_user,
                               operation=Operations.CHANGE_EMAIL,
                               new_email=new_email)
        send_change_email_email(user=current_user, token=token, to=new_email)
        flash('Confirm email sent, check your inbox.', 'info')
        return redirect(url_for('user.index', username=current_user.username))
    return render_template('user/settings/change_email.html', form=form)
Ejemplo n.º 3
0
def forget_password():
    if current_user.is_authenticated:
        return redirect(url_for('main.index'))

    form = ForgetPasswordForm()
    if form.validate_on_submit():
        email = form.email.data
        user = User.query.filter(User.email == email).first()
        if user:
            token = generate_token(user=user,
                                   operation=Operations.RESET_PASSWORD)
            send_reset_password_email(user=user, token=token)
            flash('Password reset email sent, check your inbox.', 'info')
            return redirect(url_for('auth.login'))
        flash('Invalid email.', 'warning')
        return redirect(url_for('auth.forget_password'))
    return render_template('auth/forget_password.html', form=form)
Ejemplo n.º 4
0
def register():
    if current_user.is_authenticated:
        redirect(url_for('main.index'))

    form = RegisterForm()
    if form.validate_on_submit():
        name = form.name.data
        username = form.username.data
        email = form.email.data.lower()
        password = form.password.data
        user = User(name=name, username=username, email=email)
        user.set_password(password)
        db.session.add(user)
        db.session.commit()
        token = generate_token(user=user, operation=Operations.CONFIRM)
        send_confirm_email(user=user, token=token)
        flash('Confirm email sent, check your inbox.', 'info')
    return render_template('auth/register.html', form=form)
Ejemplo n.º 5
0
    def test_change_email(self):
        user = User.query.get(2)
        self.assertEqual(user.email, '*****@*****.**')
        token = generate_token(user=user,
                               operation=Operations.CHANGE_EMAIL,
                               new_email='*****@*****.**')

        self.login()
        response = self.client.get(url_for('user.change_email', token=token),
                                   follow_redirects=True)
        data = response.get_data(as_text=True)
        self.assertIn('Email updated.', data)
        self.assertEqual(user.email, '*****@*****.**')

        response = self.client.get(url_for('user.change_email', token='bad'),
                                   follow_redirects=True)
        data = response.get_data(as_text=True)
        self.assertIn('Invalid or expired token.', data)