from datetime import datetime, timedelta import os from werkzeug.security import generate_password_hash, check_password_hash from app import db class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(64), index=True, unique=True) email = db.Column(db.String(120), index=True, unique=True) password_hash = db.Column(db.String(128)) last_seen = db.Column(db.DateTime, default=datetime.utcnow) role = db.Column(db.String(32), index=True) def __repr__(self): return f"" def set_password(self, password): """ Set the password_hash field :param password: """ self.password_hash = generate_password_hash(password) def check_password(self, password): """ Check the password against the hash in the database :param password: returns: True/False """ return check_password_hash(self.password_hash, password)