diff --git a/app/auth/views.py b/app/auth/views.py index 04afc1e6c87537a289579f2a08b86f65b307f3d0..f4c921b5879daca69fc882520ad73d1a09d18b1b 100644 --- a/app/auth/views.py +++ b/app/auth/views.py @@ -36,15 +36,32 @@ def register(): return redirect(url_for('main.index')) form = RegistrationForm() if form.validate_on_submit(): - user = User(email=form.email.data, username=form.username.data, + user = User(email=form.email.data.lower(), + username=form.username.data, password=form.password.data) db.session.add(user) db.session.commit() - flash('Successfully registered! You can now login.') + token = user.generate_confirmation_token() + send_email(user.email, 'Confirm Your Account', + 'auth/email/confirm', user=user, token=token) + flash('A confirmation email has been sent to you by email.') return redirect(url_for('auth.login')) return render_template('auth/register.html.j2', form=form) +@auth.route('/confirm/<token>') +@login_required +def confirm(token): + if current_user.confirmed: + return redirect(url_for('main.index')) + if current_user.confirm(token): + db.session.commit() + flash('You have confirmed your account. Thanks!') + else: + flash('The confirmation link is invalid or has expired.') + return redirect(url_for('main.index')) + + @auth.route('/reset', methods=['GET', 'POST']) def password_reset_request(): if not current_user.is_anonymous: