diff --git a/src/documents/views.py b/src/documents/views.py index da9a45e49..e297e0984 100644 --- a/src/documents/views.py +++ b/src/documents/views.py @@ -52,12 +52,12 @@ class FetchView(SessionOrBasicAuthMixin, DetailView): if self.kwargs["kind"] == "thumb": return HttpResponse( - GnuPG.decrypted(self.object.thumbnail_file), + self._get_raw_data(self.object.thumbnail_file), content_type=content_types[Document.TYPE_PNG] ) response = HttpResponse( - GnuPG.decrypted(self.object.source_file), + self._get_raw_data(self.object.source_file), content_type=content_types[self.object.file_type] ) response["Content-Disposition"] = 'attachment; filename="{}"'.format( @@ -65,6 +65,11 @@ class FetchView(SessionOrBasicAuthMixin, DetailView): return response + def _get_raw_data(self, file_handle): + if self.object.storage_type == Document.STORAGE_TYPE_UNENCRYPTED: + return file_handle + return GnuPG.decrypted(file_handle) + class PushView(SessionOrBasicAuthMixin, FormView): """ diff --git a/src/paperless/db.py b/src/paperless/db.py index 07cef0024..49e4fea4b 100644 --- a/src/paperless/db.py +++ b/src/paperless/db.py @@ -12,15 +12,11 @@ class GnuPG(object): @classmethod def decrypted(cls, file_handle): - if(not settings.ENABLE_ENCRYPTION): - return file_handle.read() return cls.gpg.decrypt_file( file_handle, passphrase=settings.PASSPHRASE).data @classmethod def encrypted(cls, file_handle): - if(not settings.ENABLE_ENCRYPTION): - return file_handle.read() return cls.gpg.encrypt_file( file_handle, recipients=None,