1
0
Fork 0
mirror of https://github.com/mealie-recipes/mealie.git synced 2025-08-04 21:15:22 +02:00

fix: Reset Locked Users (#4429)

Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
Michael Genson 2024-10-24 09:33:05 -05:00 committed by GitHub
parent dacd0acff6
commit 34bd4a74c2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 5 deletions

View file

@ -9,9 +9,10 @@ def locked_user_reset():
logger.debug("resetting locked users") logger.debug("resetting locked users")
with session_context() as session: with session_context() as session:
repos = AllRepositories(session, group_id=None, user_id=None) repos = AllRepositories(session, group_id=None, household_id=None)
user_service = UserService(repos) user_service = UserService(repos)
unlocked = user_service.reset_locked_users() unlocked = user_service.reset_locked_users()
logger.debug(f"scheduled task unlocked {unlocked} users in the database") logger.debug(f"scheduled task unlocked {unlocked} users in the database")
logger.info("locked users reset") logger.info("locked users reset")
return unlocked

View file

@ -1,6 +1,8 @@
from datetime import datetime, timedelta, timezone from datetime import datetime, timedelta, timezone
from mealie.repos.repository_factory import AllRepositories import pytest
from mealie.services.scheduler.tasks.reset_locked_users import locked_user_reset
from mealie.services.user_services.user_service import UserService from mealie.services.user_services.user_service import UserService
from tests.utils.fixture_schemas import TestUser from tests.utils.fixture_schemas import TestUser
@ -67,7 +69,8 @@ def test_lock_unlocker_user(unique_user: TestUser) -> None:
assert not user.is_locked assert not user.is_locked
def test_reset_locked_users(unique_user: TestUser) -> None: @pytest.mark.parametrize("use_task", [True, False])
def test_reset_locked_users(unique_user: TestUser, use_task: bool) -> None:
database = unique_user.repos database = unique_user.repos
user_service = UserService(database) user_service = UserService(database)
@ -84,6 +87,9 @@ def test_reset_locked_users(unique_user: TestUser) -> None:
assert user.login_attemps == 5 assert user.login_attemps == 5
# Test that the locked user is not unlocked by reset # Test that the locked user is not unlocked by reset
if use_task:
unlocked = locked_user_reset()
else:
unlocked = user_service.reset_locked_users() unlocked = user_service.reset_locked_users()
user = database.users.get_one(unique_user.user_id) user = database.users.get_one(unique_user.user_id)
assert user assert user
@ -94,6 +100,9 @@ def test_reset_locked_users(unique_user: TestUser) -> None:
# Test that the locked user is unlocked by reset # Test that the locked user is unlocked by reset
user.locked_at = datetime.now(timezone.utc) - timedelta(days=2) user.locked_at = datetime.now(timezone.utc) - timedelta(days=2)
database.users.update(user.id, user) database.users.update(user.id, user)
if use_task:
unlocked = locked_user_reset()
else:
unlocked = user_service.reset_locked_users() unlocked = user_service.reset_locked_users()
user = database.users.get_one(unique_user.user_id) user = database.users.get_one(unique_user.user_id)
assert user assert user