From 8ef543fdcc1aa94faf89159dc70fca79cb725794 Mon Sep 17 00:00:00 2001 From: Suraj Shetty Date: Tue, 26 Jun 2018 10:13:37 +0530 Subject: [PATCH] Update doctype names in skip_for_doctype field on doctype rename (#5719) --- frappe/model/rename_doc.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/frappe/model/rename_doc.py b/frappe/model/rename_doc.py index 3f9a972dad..247e0832b0 100644 --- a/frappe/model/rename_doc.py +++ b/frappe/model/rename_doc.py @@ -174,6 +174,7 @@ def rename_doctype(doctype, old, new, force=False): # change options for fieldtype Table update_options_for_fieldtype("Table", old, new) update_options_for_fieldtype("Link", old, new) + update_user_permissions(old, new) # change options where select options are hardcoded i.e. listed select_fields = get_select_fields(old, new) @@ -283,6 +284,15 @@ def update_options_for_fieldtype(fieldtype, old, new): frappe.db.sql("""update `tabProperty Setter` set value=%s where property='options' and value=%s""", (new, old)) +def update_user_permissions(old_doctype_name, new_doctype_name): + user_perms = frappe.get_all('User Permission', fields=['name','skip_for_doctype']) + for perm in user_perms: + doctype_list = perm.skip_for_doctype.split("\n") if perm.skip_for_doctype else [] + if old_doctype_name in doctype_list: + new_list = [new_doctype_name if dt==old_doctype_name else dt for dt in doctype_list] + new_string = "\n".join(new_list) + frappe.db.set_value('User Permission', perm.name, 'skip_for_doctype', new_string) + def get_select_fields(old, new): """ get select type fields where doctype's name is hardcoded as