Guard admin messages from leaking or duplicating #59

Merged
mark merged 4 commits from fix/issue-57-message-followup into main 2026-03-15 18:53:42 +00:00
Showing only changes of commit 9d7821b94d - Show all commits

View File

@@ -1,6 +1,7 @@
from __future__ import annotations from __future__ import annotations
import secrets import secrets
from typing import Any, cast
from django.contrib.messages import get_messages from django.contrib.messages import get_messages
@@ -54,7 +55,7 @@ class AdminMessageGuardMiddleware:
# The public site has no legitimate use of Django's shared flash queue. # The public site has no legitimate use of Django's shared flash queue.
# Drain any stale admin messages before frontend rendering can see them. # Drain any stale admin messages before frontend rendering can see them.
if not request.path.startswith(self.ADMIN_PREFIXES): if not request.path.startswith(self.ADMIN_PREFIXES):
storage = get_messages(request) storage = cast(Any, get_messages(request))
list(storage) list(storage)
storage._queued_messages = [] storage._queued_messages = []
storage._loaded_data = [] storage._loaded_data = []