Add check for changed password

These tests are incomplete, but I have no idea how to write the other
half.
This commit is contained in:
Daniel Quinn
2018-03-18 15:42:51 +00:00
parent c0ad6cd58a
commit f72fa43e86
3 changed files with 52 additions and 0 deletions

26
src/documents/checks.py Normal file
View File

@@ -0,0 +1,26 @@
from django.core.checks import Warning, register
@register()
def changed_password_check(app_configs, **kwargs):
from documents.models import Document
from paperless.db import GnuPG
warning = (
"At least one document:\n\n {}\n\nin your data store was encrypted "
"with a password other than the one currently\nin use. This means "
"that this file, and others encrypted with the other\npassword are no "
"longer acessible, which is probably not what you want. If\nyou "
"intend to change your Paperless password, you must first export all "
"of\nthe old documents, start fresh with the new password and then "
"re-import them."
)
document = Document.objects.order_by("-pk").filter(
storage_type=Document.STORAGE_TYPE_GPG
).first()
if document and not GnuPG.decrypted(document.source_file):
return [Warning(warning.format(document))]
return []