aboutsummaryrefslogtreecommitdiffstats
path: root/thallium-backend/src
diff options
context:
space:
mode:
Diffstat (limited to 'thallium-backend/src')
-rw-r--r--thallium-backend/src/orm/users.py15
1 files changed, 14 insertions, 1 deletions
diff --git a/thallium-backend/src/orm/users.py b/thallium-backend/src/orm/users.py
index 82c46c0..1aa0bfe 100644
--- a/thallium-backend/src/orm/users.py
+++ b/thallium-backend/src/orm/users.py
@@ -1,4 +1,7 @@
-from sqlalchemy.orm import Mapped
+from datetime import datetime
+
+from sqlalchemy import CheckConstraint, TIMESTAMP
+from sqlalchemy.orm import Mapped, mapped_column
from .base import AuditBase, Base, UUIDBase
@@ -8,4 +11,14 @@ class User(UUIDBase, AuditBase, Base):
__tablename__ = "users"
+ username: Mapped[str] = mapped_column(unique=True)
+ password_hash: Mapped[str]
permissions: Mapped[int]
+ password_set_at: Mapped[datetime] = mapped_column(TIMESTAMP(timezone=True))
+ require_password_change: Mapped[bool] = mapped_column(default=True)
+ password_reset_code: Mapped[str] = mapped_column(nullable=True)
+ active: Mapped[bool] = mapped_column(default=True)
+
+ __table_args__ = (
+ CheckConstraint("require_password_change = (password_reset_code is not null)", name="pass_req_change_has_code"),
+ )