fix(patch): patch existing roles with desk_settings
This commit is contained in:
parent
37c633eaf6
commit
d38d9ac98e
5 changed files with 42 additions and 16 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
@ -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",
|
||||
|
|
|
|||
|
|
@ -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'''
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue