Coverage for opt/mealie/lib/python3.12/site-packages/mealie/schema/user/user_passwords.py: 100%

25 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-11-25 15:32 +0000

1from pydantic import UUID4, ConfigDict 1a

2from sqlalchemy.orm import selectinload 1a

3from sqlalchemy.orm.interfaces import LoaderOption 1a

4 

5from mealie.schema._mealie import MealieModel 1a

6 

7from ...db.models.users import PasswordResetModel, User 1a

8from .user import PrivateUser 1a

9 

10 

11class ForgotPassword(MealieModel): 1a

12 email: str 1a

13 

14 

15class PasswordResetToken(MealieModel): 1a

16 token: str 1a

17 

18 

19class ValidateResetToken(MealieModel): 1a

20 token: str 1a

21 

22 

23class ResetPassword(ValidateResetToken): 1a

24 email: str 1a

25 password: str 1a

26 passwordConfirm: str 1a

27 

28 

29class SavePasswordResetToken(MealieModel): 1a

30 user_id: UUID4 1a

31 token: str 1a

32 

33 

34class PrivatePasswordResetToken(SavePasswordResetToken): 1a

35 user: PrivateUser 1a

36 model_config = ConfigDict(from_attributes=True) 1a

37 

38 @classmethod 1a

39 def loader_options(cls) -> list[LoaderOption]: 1a

40 return [ 

41 selectinload(PasswordResetModel.user).joinedload(User.group), 

42 selectinload(PasswordResetModel.user).joinedload(User.household), 

43 selectinload(PasswordResetModel.user).joinedload(User.tokens), 

44 ]