diff options
Diffstat (limited to 'thallium-backend/src')
| -rw-r--r-- | thallium-backend/src/orm/users.py | 15 |
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"), + ) |