fix: Document key expiry logic

This commit is contained in:
Suraj Shetty 2022-01-18 19:27:33 +05:30
parent 515f56a689
commit afeddbb96d
5 changed files with 15 additions and 33 deletions

View file

@ -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",

View file

@ -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")
def is_expired(self):
return self.expires_on < frappe.utils.getdate()

View file

@ -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": [

View file

@ -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:

View file

@ -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