From e08af2f726d17515b5b1ad1f14d5dc6f6f037975 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 30 Jan 2026 08:34:12 -0800 Subject: [PATCH] Simplify the superuser pathway --- src/documents/permissions.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/documents/permissions.py b/src/documents/permissions.py index 4b19db1ce..c2b02dc05 100644 --- a/src/documents/permissions.py +++ b/src/documents/permissions.py @@ -176,7 +176,7 @@ def _permitted_document_ids(user): ).values_list("id", flat=True) -def get_document_count_filter_for_user(user, *, relation_prefix: str = "documents"): +def get_document_count_filter_for_user(user): """ Return the Q object used to filter document counts for the given user. @@ -184,9 +184,12 @@ def get_document_count_filter_for_user(user, *, relation_prefix: str = "document document IDs to keep the generated SQL simple and avoid large OR clauses. """ - id_key = f"{relation_prefix}__id__in" + if getattr(user, "is_superuser", False): + # Superuser: no permission filtering needed + return Q(documents__deleted_at__isnull=True) + permitted_ids = _permitted_document_ids(user) - return Q(**{id_key: permitted_ids}) + return Q(documents__id__in=permitted_ids) def annotate_document_count_for_related_queryset(