summaryrefslogtreecommitdiff
path: root/app/tables/user.py
blob: 483e56f8ad314c927c3e1df0b8b33a3aebd907c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from app import db, login_manager
from flask_login import UserMixin
from werkzeug.security import generate_password_hash, check_password_hash


@login_manager.user_loader
def get_user(user_id):
    return User.query.get(user_id)


class User(db.Model, UserMixin):
    __tablename__ = "users"

    # fields
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
    password = db.Column(db.String(80))
    email = db.Column(db.String(120), unique=True, nullable=False)

    # relationships
    workouts = db.relationship("Workout", backref="user", lazy="dynamic")

    def __init__(self, username, password, email):
        self.username = username
        self.password = generate_password_hash(password)
        self.email = email

    def __repr__(self):
        return f"<User {self.username}>"

    def verify_password(self, pwd):
        return check_password_hash(self.password, pwd)