Fix: more api fixes (#10204)

This commit is contained in:
shamoon
2025-06-19 08:28:41 -07:00
committed by GitHub
parent 0a1786f39b
commit 83391af866
5 changed files with 183 additions and 16 deletions

View File

@@ -6,6 +6,7 @@ import re
import tempfile
import zipfile
from datetime import datetime
from distutils.util import strtobool
from pathlib import Path
from time import mktime
from unicodedata import normalize
@@ -236,9 +237,15 @@ class PassUserMixin(GenericAPIView):
def get_serializer(self, *args, **kwargs):
kwargs.setdefault("user", self.request.user)
try:
full_perms = bool(
strtobool(str(self.request.query_params.get("full_perms", "false"))),
)
except ValueError:
full_perms = False
kwargs.setdefault(
"full_perms",
self.request.query_params.get("full_perms", False),
full_perms,
)
return super().get_serializer(*args, **kwargs)
@@ -592,9 +599,15 @@ class DocumentViewSet(
kwargs.setdefault("context", self.get_serializer_context())
kwargs.setdefault("fields", fields)
kwargs.setdefault("truncate_content", truncate_content.lower() in ["true", "1"])
try:
full_perms = bool(
strtobool(str(self.request.query_params.get("full_perms", "false"))),
)
except ValueError:
full_perms = False
kwargs.setdefault(
"full_perms",
self.request.query_params.get("full_perms", False),
full_perms,
)
return super().get_serializer(*args, **kwargs)
@@ -2536,6 +2549,13 @@ class WorkflowTriggerViewSet(ModelViewSet):
queryset = WorkflowTrigger.objects.all()
def partial_update(self, request, *args, **kwargs):
if "id" in request.data and str(request.data["id"]) != str(kwargs["pk"]):
return HttpResponseBadRequest(
"ID in body does not match URL",
)
return super().partial_update(request, *args, **kwargs)
class WorkflowActionViewSet(ModelViewSet):
permission_classes = (IsAuthenticated, PaperlessObjectPermissions)
@@ -2554,6 +2574,13 @@ class WorkflowActionViewSet(ModelViewSet):
"assign_custom_fields",
)
def partial_update(self, request, *args, **kwargs):
if "id" in request.data and str(request.data["id"]) != str(kwargs["pk"]):
return HttpResponseBadRequest(
"ID in body does not match URL",
)
return super().partial_update(request, *args, **kwargs)
class WorkflowViewSet(ModelViewSet):
permission_classes = (IsAuthenticated, PaperlessObjectPermissions)