]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Correct object retrieval
authorshamoon <4887959+shamoon@users.noreply.github.com>
Mon, 21 Apr 2025 18:34:13 +0000 (11:34 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Wed, 2 Jul 2025 18:01:48 +0000 (11:01 -0700)
src/paperless/ai/matching.py

index 9267850df47cc0c1c10a137bfa91bd3814c9e071..8bc8808035b79b18e7c242a954c523363c5a37cd 100644 (file)
@@ -6,6 +6,7 @@ from documents.models import Correspondent
 from documents.models import DocumentType
 from documents.models import StoragePath
 from documents.models import Tag
+from documents.permissions import get_objects_for_user_owner_aware
 
 MATCH_THRESHOLD = 0.7
 
@@ -13,30 +14,37 @@ logger = logging.getLogger("paperless.ai.matching")
 
 
 def match_tags_by_name(names: list[str], user) -> list[Tag]:
-    queryset = (
-        Tag.objects.filter(owner=user) if user.is_authenticated else Tag.objects.all()
+    queryset = get_objects_for_user_owner_aware(
+        user,
+        ["view_tag"],
+        Tag,
     )
     return _match_names_to_queryset(names, queryset, "name")
 
 
 def match_correspondents_by_name(names: list[str], user) -> list[Correspondent]:
-    queryset = (
-        Correspondent.objects.filter(owner=user)
-        if user.is_authenticated
-        else Correspondent.objects.all()
+    queryset = get_objects_for_user_owner_aware(
+        user,
+        ["view_correspondent"],
+        Correspondent,
     )
     return _match_names_to_queryset(names, queryset, "name")
 
 
 def match_document_types_by_name(names: list[str]) -> list[DocumentType]:
-    return _match_names_to_queryset(names, DocumentType.objects.all(), "name")
+    queryset = get_objects_for_user_owner_aware(
+        None,
+        ["view_documenttype"],
+        DocumentType,
+    )
+    return _match_names_to_queryset(names, queryset, "name")
 
 
 def match_storage_paths_by_name(names: list[str], user) -> list[StoragePath]:
-    queryset = (
-        StoragePath.objects.filter(owner=user)
-        if user.is_authenticated
-        else StoragePath.objects.all()
+    queryset = get_objects_for_user_owner_aware(
+        user,
+        ["view_storagepath"],
+        StoragePath,
     )
     return _match_names_to_queryset(names, queryset, "name")