Login works with email
This commit is contained in:
@ -3,7 +3,7 @@ from flask_login import current_user, login_user
|
||||
|
||||
from aula import bcrypt
|
||||
from aula.forms import UserLoginForm
|
||||
from aula.models import select_users
|
||||
from aula.models import select_users_by_email
|
||||
|
||||
Login = Blueprint('Login', __name__)
|
||||
|
||||
@ -29,7 +29,7 @@ def login():
|
||||
form = UserLoginForm()
|
||||
# Først bekræft, at inputtet fra formen er gyldigt... (f.eks. ikke tomt)
|
||||
if form.validate_on_submit():
|
||||
user = select_users(form.user_id.data)
|
||||
user = select_users_by_email(form.email.data)
|
||||
# Derefter tjek om hashet af adgangskoden passer med det fra databasen...
|
||||
if user != None and bcrypt.check_password_hash(user[3], form.password.data):
|
||||
login_user(user, remember=form.remember.data)
|
||||
|
@ -5,13 +5,13 @@ from wtforms.validators import DataRequired, Length
|
||||
class AddUserForm(FlaskForm):
|
||||
username = StringField('Username',
|
||||
validators=[DataRequired(), Length(min=2, max=20)])
|
||||
user_id = IntegerField('user_id',
|
||||
email = StringField('Email',
|
||||
validators=[DataRequired()])
|
||||
password = PasswordField('Password', validators=[DataRequired()])
|
||||
submit = SubmitField('Add')
|
||||
|
||||
class UserLoginForm(FlaskForm):
|
||||
user_id = IntegerField('user_id', validators=[DataRequired()])
|
||||
email = StringField('Email', validators=[DataRequired()])
|
||||
password = PasswordField('Password', validators=[DataRequired()])
|
||||
remember = BooleanField('Remember Me')
|
||||
submit = SubmitField('Login')
|
||||
|
@ -15,7 +15,7 @@ def load_user(user_id):
|
||||
WHERE {} = %s
|
||||
""").format(sql.Identifier(schema), sql.Identifier(_id))
|
||||
|
||||
cur.execute(user_sql, (int(user_id),))
|
||||
cur.execute(user_sql, (user_id,))
|
||||
if cur.rowcount > 0:
|
||||
User(cur.fetchone())
|
||||
else:
|
||||
@ -79,7 +79,7 @@ def insert_users(user_id, first_name, last_name, password, email, adresse, role)
|
||||
conn.commit()
|
||||
cur.close()
|
||||
|
||||
def select_users(user_id):
|
||||
def select_users_by_id(user_id):
|
||||
cur = conn.cursor()
|
||||
sql_call = """
|
||||
SELECT * FROM users
|
||||
@ -89,3 +89,14 @@ def select_users(user_id):
|
||||
user = User(cur.fetchone()) if cur.rowcount > 0 else None
|
||||
cur.close()
|
||||
return user
|
||||
|
||||
def select_users_by_email(email):
|
||||
cur = conn.cursor()
|
||||
sql_call = """
|
||||
SELECT * FROM users
|
||||
WHERE email = %s
|
||||
"""
|
||||
cur.execute(sql_call, (email,))
|
||||
user = User(cur.fetchone()) if cur.rowcount > 0 else None
|
||||
cur.close()
|
||||
return user
|
||||
|
@ -6,16 +6,16 @@
|
||||
<fieldset class="form-group">
|
||||
<legend class="border-bottom mb-4">Log In</legend>
|
||||
<div class="form-group">
|
||||
{{ form.user_id.label(class="form-control-label") }}
|
||||
{% if form.user_id.errors %}
|
||||
{{ form.user_id(class="form-control form-control-lg is-invalid") }}
|
||||
{{ form.email.label(class="form-control-label") }}
|
||||
{% if form.email.errors %}
|
||||
{{ form.email(class="form-control form-control-lg is-invalid") }}
|
||||
<div class="invalid-feedback">
|
||||
{% for error in form.user_id.errors %}
|
||||
{% for error in form.email.errors %}
|
||||
<span>{{ error }}</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
{{ form.user_id(class="form-control form-control-lg") }}
|
||||
{{ form.email(class="form-control form-control-lg") }}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
Reference in New Issue
Block a user