From ddbbc0ef8df16f57a921f2e0f2c634535448bd80 Mon Sep 17 00:00:00 2001 From: phot0n Date: Fri, 15 Jul 2022 14:23:05 +0530 Subject: [PATCH] fix: add default system manager role when changing from child to non-child table doctype --- frappe/core/doctype/doctype/doctype.js | 12 +++++++++--- frappe/core/doctype/doctype/doctype.py | 7 +++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/frappe/core/doctype/doctype/doctype.js b/frappe/core/doctype/doctype/doctype.js index 514e3a9455..3a9b1f63dc 100644 --- a/frappe/core/doctype/doctype/doctype.js +++ b/frappe/core/doctype/doctype/doctype.js @@ -46,9 +46,7 @@ frappe.ui.form.on('DocType', { } if(frm.is_new()) { - if (!(frm.doc.permissions && frm.doc.permissions.length)) { - frm.add_child('permissions', {role: 'System Manager'}); - } + frm.events.set_default_permission(frm); } else { frm.toggle_enable("engine", 0); } @@ -65,6 +63,14 @@ frappe.ui.form.on('DocType', { if (frm.doc.istable && frm.is_new()) { frm.set_value('autoname', 'autoincrement'); frm.set_value('allow_rename', 0); + } else if (!frm.doc.istable && !frm.is_new()) { + frm.events.set_default_permission(frm); + } + }, + + set_default_permission: (frm) => { + if (!(frm.doc.permissions && frm.doc.permissions.length)) { + frm.add_child('permissions', {role: 'System Manager'}); } }, }); diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index dbbbbc521a..2b28373384 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -181,10 +181,6 @@ class DocType(Document): ) ) - def after_insert(self): - # clear user cache so that on the next reload this doctype is included in boot - clear_user_cache(frappe.session.user) - def set_defaults_for_single_and_table(self): if self.issingle: self.allow_import = 0 @@ -412,6 +408,9 @@ class DocType(Document): delete_notification_count_for(doctype=self.name) frappe.clear_cache(doctype=self.name) + # clear user cache so that on the next reload this doctype is included in boot + clear_user_cache(frappe.session.user) + if not frappe.flags.in_install and hasattr(self, "before_update"): self.sync_global_search()