mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-08-04 13:05:21 +02:00
fix: Reset Locked Users (#4429)
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
This commit is contained in:
parent
dacd0acff6
commit
34bd4a74c2
2 changed files with 15 additions and 5 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue