diff --git a/app/auth/views.py b/app/auth/views.py index e4595f3761dda0150f074327c284604a96b44b37..abb1ccff380e44160473d084f4ddf313552f86ff 100644 --- a/app/auth/views.py +++ b/app/auth/views.py @@ -62,6 +62,32 @@ def confirm(token): return redirect(url_for('main.index')) +@auth.before_app_request +def before_request(): + if current_user.is_authenticated \ + and not current_user.confirmed \ + and request.blueprint != 'auth' \ + and request.blueprint != 'static': + return redirect(url_for('auth.unconfirmed')) + + +@auth.route('/unconfirmed') +def unconfirmed(): + if current_user.is_anonymous or current_user.confirmed: + return redirect(url_for('main.index')) + return render_template('auth/unconfirmed.html.j2') + + +@auth.route('/confirm') +@login_required +def resend_confirmation(): + token = current_user.generate_confirmation_token() + send_email(current_user.email, 'Confirm Your Account', 'auth/email/confirm', + user=current_user, token=token) + flash('A new confirmation email has benn sent to you by email.') + return redirect(url_for('maind.index')) + + @auth.route('/reset', methods=['GET', 'POST']) def password_reset_request(): if not current_user.is_anonymous: diff --git a/app/templates/auth/unconfirmed.html.j2 b/app/templates/auth/unconfirmed.html.j2 new file mode 100644 index 0000000000000000000000000000000000000000..78ac1510c0c81c2280f29509e5875dd65416ff5a --- /dev/null +++ b/app/templates/auth/unconfirmed.html.j2 @@ -0,0 +1,20 @@ +{% extends "base.html.j2" %} + +{% block title %}Opaque - Confirm your account{% endblock %} + +{% block page_content %} +<div class="page-header"> + <h1> + Hello, {{ current_user.username }}! + </h1> + <h3>You have not confirmed your account yet.</h3> + <p> + Before you can access this site you need to confirm your account. + Check your inbox, you should have received an email with a confirmation link. + </p> + <p> + Need another confirmation email? + <a href="{{ url_for('auth.resend_confirmation') }}">Click here</a> + </p> +</div> +{% endblock %} diff --git a/data_dev.sqlite b/data_dev.sqlite index bf94d7cea40518bb8971abc2d80a79d41eb18807..78cdddd233acf07a4b2c9fae158d207d54f05fa3 100644 Binary files a/data_dev.sqlite and b/data_dev.sqlite differ