diff --git a/frappe/core/doctype/document_key/document_key.json b/frappe/core/doctype/document_key/document_key.json index b9f26b2a7e..e24d786ce5 100644 --- a/frappe/core/doctype/document_key/document_key.json +++ b/frappe/core/doctype/document_key/document_key.json @@ -2,7 +2,7 @@ "actions": [], "allow_rename": 1, "autoname": "format:DOCUMENT-KEY-{########}", - "creation": "2021-12-20 03:34:58.744797", + "creation": "2022-01-14 13:40:49.487646", "doctype": "DocType", "document_key_expiry": 90, "editable_grid": 1, @@ -11,8 +11,7 @@ "reference_doctype", "reference_docname", "key", - "expires_on", - "status" + "expires_on" ], "fields": [ { @@ -43,23 +42,12 @@ "in_list_view": 1, "label": "Expires On", "read_only": 1 - }, - { - "default": "Active", - "fieldname": "status", - "fieldtype": "Select", - "in_list_view": 1, - "in_standard_filter": 1, - "label": "Status", - "options": "Active\nExpired", - "read_only": 1, - "search_index": 1 } ], "in_create": 1, "index_web_pages_for_search": 1, "links": [], - "modified": "2021-12-28 00:43:57.811188", + "modified": "2022-01-14 13:57:28.050678", "modified_by": "Administrator", "module": "Core", "name": "Document Key", diff --git a/frappe/core/doctype/document_key/document_key.py b/frappe/core/doctype/document_key/document_key.py index 5b8fefcb80..86ae4f3a68 100644 --- a/frappe/core/doctype/document_key/document_key.py +++ b/frappe/core/doctype/document_key/document_key.py @@ -11,10 +11,5 @@ class DocumentKey(Document): meta = frappe.get_meta("DocType", self.reference_doctype) self.expires_on = frappe.utils.add_days(None, days=meta.get("document_key_expiry") or 90) - -def expire_document_keys(): - # called from hooks - frappe.db.set_value("Document Key", { - "expired_on": ["<", frappe.utils.nowdate()], - "status": "Active" - }, "status", "Expired") \ No newline at end of file + def is_expired(self): + return self.expires_on < frappe.utils.getdate() diff --git a/frappe/hooks.py b/frappe/hooks.py index d729e2ab55..4895c97200 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -241,7 +241,6 @@ scheduler_events = { "frappe.email.doctype.unhandled_email.unhandled_email.remove_old_unhandled_emails", "frappe.core.doctype.prepared_report.prepared_report.delete_expired_prepared_reports", "frappe.core.doctype.log_settings.log_settings.run_log_clean_up", - "frappe.core.doctype.document_key.document_key.expire_document_keys", "frappe.website.doctype.personal_data_deletion_request.personal_data_deletion_request.process_data_deletion_request" ], "daily_long": [ diff --git a/frappe/model/document.py b/frappe/model/document.py index 5ec0035542..a36d1efa0e 100644 --- a/frappe/model/document.py +++ b/frappe/model/document.py @@ -1286,14 +1286,6 @@ class Document(BaseDocument): doc.insert(ignore_permissions=True) return doc.key - def is_document_key_valid(self, key): - return frappe.db.exists("Document Key", { - "reference_doctype": self.doctype, - "reference_docname": self.name, - "status": "Active", - "key": key - }, cache=True) - def get_liked_by(self): liked_by = getattr(self, "_liked_by", None) if liked_by: diff --git a/frappe/www/printview.py b/frappe/www/printview.py index 43e3e36397..cc31b27e93 100644 --- a/frappe/www/printview.py +++ b/frappe/www/printview.py @@ -235,8 +235,16 @@ def get_rendered_raw_commands(doc, name=None, print_format=None, meta=None, lang def validate_print_permission(doc): if frappe.form_dict.get("key"): - if doc.is_document_key_valid(frappe.form_dict.key): - return + document_key = frappe.db.exists("Document Key", { + "reference_doctype": doc.doctype, + "reference_docname": doc.name, + "key": frappe.form_dict.key + }, cache=True) + if document_key: + if frappe.get_cached_doc("Document Key", document_key).is_expired(): + raise frappe.exceptions.LinkExpiredError + else: + return if frappe.form_dict.key == doc.get_signature(): return