fix: Invalidate Expired Shared Links (#5065)

This commit is contained in:
Michael Genson
2025-02-25 07:01:32 -06:00
committed by GitHub
parent a2c6b3f69b
commit df8dd3fe4a
8 changed files with 128 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
from .create_timeline_events import create_mealplan_timeline_events
from .delete_old_checked_shopping_list_items import delete_old_checked_list_items
from .post_webhooks import post_group_webhooks
from .purge_expired_share_tokens import purge_expired_tokens
from .purge_group_exports import purge_group_data_exports
from .purge_password_reset import purge_password_reset_tokens
from .purge_registration import purge_group_registration
@@ -10,6 +11,7 @@ __all__ = [
"create_mealplan_timeline_events",
"delete_old_checked_list_items",
"post_group_webhooks",
"purge_expired_tokens",
"purge_password_reset_tokens",
"purge_group_data_exports",
"purge_group_registration",

View File

@@ -0,0 +1,19 @@
from datetime import UTC, datetime
from mealie.db.db_setup import session_context
from mealie.repos.all_repositories import get_repositories
from mealie.schema.response.pagination import PaginationQuery
def purge_expired_tokens() -> None:
current_time = datetime.now(UTC)
with session_context() as session:
db = get_repositories(session, group_id=None)
tokens_response = db.recipe_share_tokens.page_all(
PaginationQuery(page=1, per_page=-1, query_filter=f"expiresAt < {current_time}")
)
if not (tokens := tokens_response.items):
return
db.recipe_share_tokens.delete_many([token.id for token in tokens])