fix(patch): patch existing roles with desk_settings

This commit is contained in:
Rushabh Mehta 2020-11-11 17:44:14 +05:30
parent 37c633eaf6
commit d38d9ac98e
5 changed files with 42 additions and 16 deletions

View file

@ -315,8 +315,7 @@ def get_desk_settings():
))
desk_settings = {}
desk_properties = ("search_bar", "notification", "chat", "list_sidebar",
"bulk_actions", "view_switcher", "form_sidebar", "timeline", "dashboard")
from frappe.core.doctype.role.role import desk_properties
for role in role_list:
for key in desk_properties:

View file

@ -0,0 +1,9 @@
import frappe
from ..role import desk_properties
def execute():
for role in frappe.get_all('Role', ['name', 'desk_access']):
role_doc = frappe.get_doc('Role', role.name)
for key in desk_properties:
role_doc.set(key, role_doc.desk_access)
role_doc.save()

View file

@ -79,13 +79,13 @@
"label": "Navigation Settings"
},
{
"default": "0",
"default": "1",
"fieldname": "search_bar",
"fieldtype": "Check",
"label": "Search Bar"
},
{
"default": "0",
"default": "1",
"fieldname": "notification",
"fieldtype": "Check",
"label": "Notification"
@ -102,13 +102,13 @@
"label": "List Settings"
},
{
"default": "0",
"default": "1",
"fieldname": "list_sidebar",
"fieldtype": "Check",
"label": "Sidebar"
},
{
"default": "0",
"default": "1",
"fieldname": "bulk_actions",
"fieldtype": "Check",
"label": "Bulk Actions"
@ -119,25 +119,25 @@
"label": "Form Settings"
},
{
"default": "0",
"default": "1",
"fieldname": "form_sidebar",
"fieldtype": "Check",
"label": "Sidebar"
},
{
"default": "0",
"default": "1",
"fieldname": "timeline",
"fieldtype": "Check",
"label": "Timeline"
},
{
"default": "0",
"default": "1",
"fieldname": "dashboard",
"fieldtype": "Check",
"label": "Dashboard"
},
{
"default": "0",
"default": "1",
"fieldname": "view_switcher",
"fieldtype": "Check",
"label": "View Switcher"
@ -147,7 +147,7 @@
"idx": 1,
"index_web_pages_for_search": 1,
"links": [],
"modified": "2020-11-05 01:25:10.536546",
"modified": "2020-11-11 17:29:13.149522",
"modified_by": "Administrator",
"module": "Core",
"name": "Role",

View file

@ -6,6 +6,9 @@ import frappe
from frappe.model.document import Document
desk_properties = ("search_bar", "notification", "chat", "list_sidebar",
"bulk_actions", "view_switcher", "form_sidebar", "timeline", "dashboard")
class Role(Document):
def before_rename(self, old, new, merge=False):
if old in ("Guest", "Administrator", "System Manager", "All"):
@ -16,11 +19,25 @@ class Role(Document):
def validate(self):
if self.disabled:
if self.name in ("Guest", "Administrator", "System Manager", "All"):
frappe.throw(frappe._("Standard roles cannot be disabled"))
else:
frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
frappe.clear_cache()
self.disable_role()
else:
self.set_desk_properties()
def disable_role(self):
if self.name in ("Guest", "Administrator", "System Manager", "All"):
frappe.throw(frappe._("Standard roles cannot be disabled"))
else:
self.remove_roles()
def set_desk_properties(self):
# set if desk_access is not allowed, unset all desk properties
if not self.desk_access:
for key in desk_properties:
self.set(key, 0)
def remove_roles(self):
frappe.db.sql("delete from `tabHas Role` where role = %s", self.name)
frappe.clear_cache()
def on_update(self):
'''update system user desk access if this has changed in this update'''

View file

@ -318,3 +318,4 @@ frappe.patches.v13_0.web_template_set_module #2020-10-05
frappe.patches.v13_0.remove_custom_link
execute:frappe.delete_doc("DocType", "Footer Item")
frappe.patches.v13_0.replace_field_target_with_open_in_new_tab
frappe.core.doctype.role.patches.v13_set_default_desk_properties