]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: only pass user to SerializerWithPerms serializers
authorshamoon <4887959+shamoon@users.noreply.github.com>
Mon, 16 Feb 2026 17:31:33 +0000 (09:31 -0800)
committershamoon <4887959+shamoon@users.noreply.github.com>
Mon, 16 Feb 2026 17:31:33 +0000 (09:31 -0800)
src/documents/views.py

index 420e8fb1e75e7a4c3446bad726f6044b4c67c9d8..bb7cd0f51d27ba2e563c4b17d24c034b7f084696 100644 (file)
@@ -175,6 +175,7 @@ from documents.serialisers import PostDocumentSerializer
 from documents.serialisers import RunTaskViewSerializer
 from documents.serialisers import SavedViewSerializer
 from documents.serialisers import SearchResultSerializer
+from documents.serialisers import SerializerWithPerms
 from documents.serialisers import ShareLinkBundleSerializer
 from documents.serialisers import ShareLinkSerializer
 from documents.serialisers import StoragePathSerializer
@@ -272,17 +273,22 @@ class PassUserMixin(GenericAPIView):
     """
 
     def get_serializer(self, *args, **kwargs):
-        kwargs.setdefault("user", self.request.user)
-        try:
-            full_perms = get_boolean(
-                str(self.request.query_params.get("full_perms", "false")),
+        serializer_class = self.get_serializer_class()
+        if isinstance(serializer_class, type) and issubclass(
+            serializer_class,
+            SerializerWithPerms,
+        ):
+            kwargs.setdefault("user", self.request.user)
+            try:
+                full_perms = get_boolean(
+                    str(self.request.query_params.get("full_perms", "false")),
+                )
+            except ValueError:
+                full_perms = False
+            kwargs.setdefault(
+                "full_perms",
+                full_perms,
             )
-        except ValueError:
-            full_perms = False
-        kwargs.setdefault(
-            "full_perms",
-            full_perms,
-        )
         return super().get_serializer(*args, **kwargs)