mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-05-15 14:27:31 -04:00
Add private columns for sensitive data
This commit is contained in:
@@ -3,7 +3,7 @@ from typing import TYPE_CHECKING, Optional
|
||||
from sqlalchemy import ForeignKey, Integer, String, orm
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from .._model_base import BaseMixins, SqlAlchemyBase
|
||||
from .._model_base import BaseMixins, PrivateColumn, SqlAlchemyBase
|
||||
from .._model_utils import guid
|
||||
from .._model_utils.auto_init import auto_init
|
||||
|
||||
@@ -14,7 +14,7 @@ if TYPE_CHECKING:
|
||||
|
||||
class GroupInviteToken(SqlAlchemyBase, BaseMixins):
|
||||
__tablename__ = "invite_tokens"
|
||||
token: Mapped[str] = mapped_column(String, index=True, nullable=False, unique=True)
|
||||
token: PrivateColumn[str] = mapped_column(String, index=True, nullable=False, unique=True)
|
||||
uses_left: Mapped[int] = mapped_column(Integer, nullable=False, default=1)
|
||||
|
||||
group_id: Mapped[guid.GUID | None] = mapped_column(guid.GUID, ForeignKey("groups.id"), index=True)
|
||||
|
||||
@@ -3,7 +3,7 @@ from typing import TYPE_CHECKING
|
||||
from sqlalchemy import ForeignKey, String, orm
|
||||
from sqlalchemy.orm import Mapped, mapped_column
|
||||
|
||||
from .._model_base import BaseMixins, SqlAlchemyBase
|
||||
from .._model_base import BaseMixins, PrivateColumn, SqlAlchemyBase
|
||||
from .._model_utils.guid import GUID
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -15,7 +15,7 @@ class PasswordResetModel(SqlAlchemyBase, BaseMixins):
|
||||
|
||||
user_id: Mapped[GUID] = mapped_column(GUID, ForeignKey("users.id"), nullable=False, index=True)
|
||||
user: Mapped["User"] = orm.relationship("User", back_populates="password_reset_tokens", uselist=False)
|
||||
token: Mapped[str] = mapped_column(String(64), unique=True, nullable=False)
|
||||
token: PrivateColumn[str] = mapped_column(String(64), unique=True, nullable=False)
|
||||
|
||||
def __init__(self, user_id, token, **_):
|
||||
self.user_id = user_id
|
||||
|
||||
@@ -13,7 +13,7 @@ from mealie.db.models._model_utils.auto_init import auto_init
|
||||
from mealie.db.models._model_utils.datetime import NaiveDateTime
|
||||
from mealie.db.models._model_utils.guid import GUID
|
||||
|
||||
from .._model_base import BaseMixins, SqlAlchemyBase
|
||||
from .._model_base import BaseMixins, PrivateColumn, SqlAlchemyBase
|
||||
from .user_to_recipe import UserToRecipe
|
||||
|
||||
if TYPE_CHECKING:
|
||||
@@ -28,7 +28,7 @@ if TYPE_CHECKING:
|
||||
class LongLiveToken(SqlAlchemyBase, BaseMixins):
|
||||
__tablename__ = "long_live_tokens"
|
||||
name: Mapped[str] = mapped_column(String, nullable=False)
|
||||
token: Mapped[str] = mapped_column(String, nullable=False, index=True)
|
||||
token: PrivateColumn[str] = mapped_column(String, nullable=False, index=True)
|
||||
|
||||
user_id: Mapped[GUID | None] = mapped_column(GUID, ForeignKey("users.id"), index=True)
|
||||
user: Mapped[Optional["User"]] = orm.relationship("User")
|
||||
@@ -54,7 +54,7 @@ class User(SqlAlchemyBase, BaseMixins):
|
||||
full_name: Mapped[str | None] = mapped_column(String, index=True)
|
||||
username: Mapped[str | None] = mapped_column(String, index=True, unique=True)
|
||||
email: Mapped[str | None] = mapped_column(String, unique=True, index=True)
|
||||
password: Mapped[str | None] = mapped_column(String)
|
||||
password: PrivateColumn[str | None] = mapped_column(String)
|
||||
auth_method: Mapped[Enum[AuthMethod]] = mapped_column(Enum(AuthMethod), default=AuthMethod.MEALIE)
|
||||
admin: Mapped[bool | None] = mapped_column(Boolean, default=False)
|
||||
advanced: Mapped[bool | None] = mapped_column(Boolean, default=False)
|
||||
@@ -84,10 +84,10 @@ class User(SqlAlchemyBase, BaseMixins):
|
||||
"single_parent": True,
|
||||
}
|
||||
|
||||
tokens: Mapped[list[LongLiveToken]] = orm.relationship(LongLiveToken, **sp_args)
|
||||
tokens: PrivateColumn[list[LongLiveToken]] = orm.relationship(LongLiveToken, **sp_args)
|
||||
comments: Mapped[list["RecipeComment"]] = orm.relationship("RecipeComment", **sp_args)
|
||||
recipe_timeline_events: Mapped[list["RecipeTimelineEvent"]] = orm.relationship("RecipeTimelineEvent", **sp_args)
|
||||
password_reset_tokens: Mapped[list["PasswordResetModel"]] = orm.relationship("PasswordResetModel", **sp_args)
|
||||
password_reset_tokens: PrivateColumn[list["PasswordResetModel"]] = orm.relationship("PasswordResetModel", **sp_args)
|
||||
|
||||
owned_recipes_id: Mapped[GUID | None] = mapped_column(GUID, ForeignKey("recipes.id"))
|
||||
owned_recipes: Mapped[Optional["RecipeModel"]] = orm.relationship(
|
||||
|
||||
Reference in New Issue
Block a user