From 6f30ceea38abcf51d332228469a81bf6ea61c6bc Mon Sep 17 00:00:00 2001 From: Jonas Winkler <jonas.winkler@jpwinkler.de> Date: Wed, 25 Nov 2020 20:16:27 +0100 Subject: [PATCH] GnuPG for archive file. --- src/documents/consumer.py | 2 +- src/documents/models.py | 2 ++ src/documents/views.py | 11 ++++++----- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/documents/consumer.py b/src/documents/consumer.py index d3653e9c6..b7601aaf7 100755 --- a/src/documents/consumer.py +++ b/src/documents/consumer.py @@ -194,7 +194,7 @@ class Consumer(LoggingMixin): thumbnail, document.thumbnail_path) if archive_path and os.path.isfile(archive_path): - self._write(Document.STORAGE_TYPE_UNENCRYPTED, + self._write(document.storage_type, archive_path, document.archive_path) # Delete the file only if it was successfully consumed diff --git a/src/documents/models.py b/src/documents/models.py index 2644657a3..5a4c9a187 100755 --- a/src/documents/models.py +++ b/src/documents/models.py @@ -227,6 +227,8 @@ class Document(models.Model): @property def archive_path(self): fname = "{:07}{}".format(self.pk, ".pdf") + if self.storage_type == self.STORAGE_TYPE_GPG: + fname += ".gpg" return os.path.join( settings.ARCHIVE_DIR, diff --git a/src/documents/views.py b/src/documents/views.py index 457fa9dc7..9484b48cc 100755 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -137,16 +137,17 @@ class DocumentViewSet(RetrieveModelMixin, def file_response(self, pk, request, disposition): doc = Document.objects.get(id=pk) - mime_type = doc.mime_type - filename = doc.file_name if not self.original_requested(request) and os.path.isfile(doc.archive_path): # NOQA: E501 file_handle = doc.archive_file filename = doc.archive_file_name mime_type = 'application/pdf' - elif doc.storage_type == Document.STORAGE_TYPE_UNENCRYPTED: - file_handle = doc.source_file else: - file_handle = GnuPG.decrypted(doc.source_file) + file_handle = doc.source_file + filename = doc.file_name + mime_type = doc.mime_type + + if doc.storage_type == Document.STORAGE_TYPE_GPG: + file_handle = GnuPG.decrypted(file_handle) response = HttpResponse(file_handle, content_type=mime_type) response["Content-Disposition"] = '{}; filename="{}"'.format(