Files
foundry-manager-api/src/user_model.py
2026-05-03 00:50:33 -07:00

48 lines
1.3 KiB
Python

from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship
from main import db
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import UserMixin
def create_new_session(user: User) -> Session:
return
class User(UserMixin, db.Model):
__tablename__ = "users"
id = db.Column(db.Integer, primary_key=True)
password_hash = db.Column(db.Text)
user_name = db.Column(db.Text, unique=True)
is_admin = db.Column(db.Boolean)
sessions = relationship("Session", back_populates="user")
def set_password(self, newPassword: str):
self.password_hash = generate_password_hash(newPassword)
def test_password(self, password: str) -> bool:
return check_password_hash(self.password_hash, password)
def to_dict(self):
return {
"id": self.id,
"username": self.user_name,
"authenticated": self.is_authenticated,
"is_admin": self.is_admin
}
class Session(db.Model):
__tableanme__ = "sessions"
session_id = db.Column(db.Text, primary_key=True)
parent_id = db.Column(db.Integer, ForeignKey("users.id"))
issue_timestamp = db.Column(db.Integer)
user = relationship("User", back_populates="sessions")
def session_active(self):
return True