husstanden/forms/login.py

46 lines
880 B
Python
Raw Normal View History

2019-04-26 03:28:27 +02:00
from wtforms import Form, BooleanField, StringField, PasswordField, validators
from flask_login import UserMixin
2019-04-26 04:52:54 +02:00
from objects import glob
2019-04-26 03:28:27 +02:00
class LoginForm(Form):
email = StringField("Email", [
validators.DataRequired(),
validators.Length(min=6, max=64)
])
password = PasswordField("Password", [
validators.DataRequired(),
2019-04-26 04:24:19 +02:00
validators.Length(min=4)
2019-04-26 03:28:27 +02:00
])
class User(UserMixin):
2019-04-26 04:52:54 +02:00
id = -1
email = ""
password = ""
firstname = ""
surname = ""
def __init__(self, login):
self.fetch_from_db(login)
def fetch_from_db(self, login):
conn = glob.get_sql_connection()
cur = conn.cursor()
cur.execute("""
SELECT *
FROM Bruker
WHERE Epost = %s
AND Passord = %s
LIMIT 1;
""", login)
user = cur.fetchone()
cur.close()
2019-04-26 03:28:27 +02:00
2019-04-26 04:52:54 +02:00
if user is None:
raise Exception("Invalid login")
2019-04-26 03:28:27 +02:00
2019-04-26 04:52:54 +02:00
self.id, self.email, self.password, self.firstname, self.surname = user