Login works with email

This commit is contained in:
NikolajDanger
2022-05-24 14:40:15 +02:00
parent 44f47570a1
commit 1e585be82e
4 changed files with 22 additions and 11 deletions

View File

@ -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)

View File

@ -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')

View File

@ -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

View File

@ -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">