diff --git a/app/auth/forms.py b/app/auth/forms.py index df1e46b60de274aee09e2cc1e505676247e5fa4a..584962775c47cbbf1a745b9c80865587e5d0110c 100644 --- a/app/auth/forms.py +++ b/app/auth/forms.py @@ -6,7 +6,7 @@ from wtforms.validators import DataRequired, Email, EqualTo, Length, Regexp class LoginForm(FlaskForm): - user = StringField('Username', validators=[DataRequired(), Length(1, 64)]) + email = StringField('Email', validators=[DataRequired(), Email()]) password = PasswordField('Password', validators=[DataRequired()]) remember_me = BooleanField('Keep me logged in') submit = SubmitField('Log In') diff --git a/app/auth/views.py b/app/auth/views.py index ee6b75d4761257fefe173f646a59e8ea15fd8770..d1b9967b86e6aa625192e42f0870a2061f592848 100644 --- a/app/auth/views.py +++ b/app/auth/views.py @@ -24,18 +24,18 @@ def before_request(): return redirect(url_for('auth.unconfirmed')) -@auth.route('/login') +@auth.route('/login', methods=['GET', 'POST']) def login(): login_form = LoginForm(prefix='login-form') if login_form.validate_on_submit(): - user = User.query.filter_by(username=login_form.user.data).first() + user = User.query.filter_by(email=login_form.email.data).first() if user is not None and user.verify_password(login_form.password.data): login_user(user, login_form.remember_me.data) next = request.args.get('next') if next is None or not next.startswith('/'): next = url_for('main.dashboard') return redirect(next) - flash('Invalid username or password.') + flash('Invalid email or password.') return render_template('auth/login.html.j2', login_form=login_form, title='nopaque') diff --git a/app/main/views.py b/app/main/views.py index d2be274a9348f0f9b7d99b18af70eb31bffa930b..d1a8636ad1c62e3fe416c7dfd35520810bbf0469 100644 --- a/app/main/views.py +++ b/app/main/views.py @@ -1,6 +1,6 @@ from app.auth.forms import LoginForm from app.models import User -from flask import flash, redirect, render_template, request, url_for +from flask import flash, redirect, render_template, url_for from flask_login import login_required, login_user from . import main @@ -9,14 +9,11 @@ from . import main def index(): login_form = LoginForm(prefix='login-form') if login_form.validate_on_submit(): - user = User.query.filter_by(username=login_form.user.data).first() + user = User.query.filter_by(email=login_form.email.data).first() if user is not None and user.verify_password(login_form.password.data): login_user(user, login_form.remember_me.data) - next = request.args.get('next') - if next is None or not next.startswith('/'): - next = url_for('main.dashboard') - return redirect(next) - flash('Invalid username or password.') + return redirect(url_for('main.dashboard')) + flash('Invalid email or password.') return render_template('main/index.html.j2', login_form=login_form, title='nopaque') diff --git a/app/templates/auth/login.html.j2 b/app/templates/auth/login.html.j2 index 6d90327ab4cf7b81d7188fa80d9fdbae1fa0a818..c51e5d13c780d82ee3bc00f8597a98fa3ab4aef1 100644 --- a/app/templates/auth/login.html.j2 +++ b/app/templates/auth/login.html.j2 @@ -14,9 +14,9 @@ {{ login_form.hidden_tag() }} <div class="input-field"> <i class="material-icons prefix">person</i> - {{ login_form.user(class='validate') }} - {{ login_form.user.label }} - {% for error in login_form.user.errors %} + {{ login_form.email(class='validate') }} + {{ login_form.email.label }} + {% for error in login_form.email.errors %} <span class="helper-text red-text">{{ error }}</span> {% endfor %} </div> diff --git a/app/templates/auth/reset_password.html.j2 b/app/templates/auth/reset_password.html.j2 index 4bcb4a7decc2ff969628d775c89b8ab60ff3a339..d913ec5f38b3ae9b8bcabe2ed39405a2e26151a0 100644 --- a/app/templates/auth/reset_password.html.j2 +++ b/app/templates/auth/reset_password.html.j2 @@ -27,7 +27,7 @@ </div> </div> <div class="card-action right-align"> - {{ form.submit(class='btn') }} + {{ reset_password_form.submit(class='btn') }} </div> </form> </div> diff --git a/app/templates/main/index.html.j2 b/app/templates/main/index.html.j2 index 6b97e6e9a9e1c0e8854139199cd3fefb51543021..bb5384905c15382d43bc6a64d4db1e32e7a382a7 100644 --- a/app/templates/main/index.html.j2 +++ b/app/templates/main/index.html.j2 @@ -100,9 +100,9 @@ {{ login_form.hidden_tag() }} <div class="input-field"> <i class="material-icons prefix">person</i> - {{ login_form.user(class='validate') }} - {{ login_form.user.label }} - {% for error in login_form.user.errors %} + {{ login_form.email(class='validate') }} + {{ login_form.email.label }} + {% for error in login_form.email.errors %} <span class="helper-text red-text">{{ error }}</span> {% endfor %} </div>