mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-09-22 00:52:42 -05:00
Update views.py
This commit is contained in:
@@ -871,8 +871,36 @@ class DocumentViewSet(
|
|||||||
)
|
)
|
||||||
def preview(self, request, pk=None):
|
def preview(self, request, pk=None):
|
||||||
try:
|
try:
|
||||||
response = self.file_response(pk, request, "inline")
|
request_doc = Document.objects.select_related("owner").get(id=pk)
|
||||||
return response
|
head_doc = (
|
||||||
|
request_doc
|
||||||
|
if request_doc.head_version_id is None
|
||||||
|
else Document.objects.select_related("owner").get(
|
||||||
|
id=request_doc.head_version_id,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
if request.user is not None and not has_perms_owner_aware(
|
||||||
|
request.user,
|
||||||
|
"view_document",
|
||||||
|
head_doc,
|
||||||
|
):
|
||||||
|
return HttpResponseForbidden("Insufficient permissions")
|
||||||
|
|
||||||
|
if "version" in request.query_params:
|
||||||
|
file_doc = self._resolve_file_doc(head_doc, request)
|
||||||
|
else:
|
||||||
|
file_doc = (
|
||||||
|
self._resolve_file_doc(head_doc, request)
|
||||||
|
if request_doc.head_version_id is None
|
||||||
|
else request_doc
|
||||||
|
)
|
||||||
|
|
||||||
|
return serve_file(
|
||||||
|
doc=file_doc,
|
||||||
|
use_archive=not self.original_requested(request)
|
||||||
|
and file_doc.has_archive_version,
|
||||||
|
disposition="inline",
|
||||||
|
)
|
||||||
except (FileNotFoundError, Document.DoesNotExist):
|
except (FileNotFoundError, Document.DoesNotExist):
|
||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user