Merge has role patch into one file
This commit is contained in:
parent
28b38d45e7
commit
3d09395d2a
8 changed files with 88 additions and 106 deletions
|
|
@ -4,11 +4,6 @@ execute:frappe.utils.global_search.setup_global_search_table()
|
|||
frappe.patches.v8_0.update_global_search_table
|
||||
frappe.patches.v7_0.update_auth
|
||||
frappe.patches.v7_1.rename_scheduler_log_to_error_log
|
||||
frappe.patches.v7_3.rename_page_role_to_has_role
|
||||
frappe.patches.v7_3.set_ref_doctype_roles_to_report
|
||||
frappe.patches.v7_3.copy_user_roles_to_has_roles
|
||||
frappe.patches.v7_3.set_user_permission_for_page_and_report
|
||||
frappe.patches.v7_3.remove_doctypes
|
||||
frappe.patches.v6_1.rename_file_data
|
||||
frappe.patches.v7_0.re_route #2016-06-27
|
||||
frappe.patches.v7_2.remove_in_filter
|
||||
|
|
@ -17,6 +12,7 @@ execute:frappe.reload_doc('core', 'doctype', 'docfield', force=True) #2017-03-03
|
|||
execute:frappe.reload_doc('core', 'doctype', 'docperm') #2017-03-03
|
||||
execute:frappe.reload_doc('core', 'doctype', 'custom_docperm')
|
||||
frappe.patches.v7_2.setup_custom_perms #2017-01-19
|
||||
frappe.patches.v8_0.rename_page_role_to_has_role
|
||||
execute:frappe.reload_doc('core', 'doctype', 'role')
|
||||
execute:frappe.reload_doc('core', 'doctype', 'user')
|
||||
execute:frappe.reload_doc('core', 'doctype', 'deleted_document')
|
||||
|
|
|
|||
|
|
@ -1,17 +0,0 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
for data in frappe.get_all('User', fields = ["name"]):
|
||||
doc = frappe.get_doc('User', data.name)
|
||||
doc.set('roles',[])
|
||||
for args in frappe.get_all('UserRole', fields = ["role"],
|
||||
filters = {'parent': data.name, 'parenttype': 'User'}):
|
||||
doc.append('roles', {
|
||||
'role': args.role
|
||||
})
|
||||
for role in doc.roles:
|
||||
role.db_update()
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
for doctype in ['UserRole', 'Event Role']:
|
||||
if frappe.db.exists('DocType', doctype):
|
||||
frappe.delete_doc('DocType', doctype)
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
if not frappe.db.exists('DocType', 'Has Role'):
|
||||
frappe.rename_doc('DocType', 'Page Role', 'Has Role')
|
||||
|
||||
frappe.reload_doc("core", 'doctype', "page")
|
||||
frappe.reload_doc("core", 'doctype', "report")
|
||||
frappe.reload_doc("core", 'doctype', "user")
|
||||
frappe.reload_doc("core", 'doctype', "has_role")
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
for data in frappe.get_all('Report', fields=["name"]):
|
||||
doc = frappe.get_doc('Report', data.name)
|
||||
if frappe.db.exists("DocType", doc.ref_doctype):
|
||||
try:
|
||||
doc.set_doctype_roles()
|
||||
for row in doc.roles:
|
||||
row.db_update()
|
||||
except:
|
||||
pass
|
||||
|
|
@ -1,44 +0,0 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
frappe.reload_doc("core", 'doctype', "custom_role")
|
||||
make_custom_roles_for_page_and_report()
|
||||
|
||||
def make_custom_roles_for_page_and_report():
|
||||
for doctype in ['Page', 'Report']:
|
||||
for data in get_data(doctype):
|
||||
doc = frappe.get_doc(doctype, data.name)
|
||||
roles = get_roles(doctype, data, doc)
|
||||
make_custom_roles(doctype, doc.name, roles)
|
||||
|
||||
def get_data(doctype):
|
||||
fields = ["name"] if doctype == 'Page' else ["name", "ref_doctype"]
|
||||
return frappe.get_all(doctype, fields = fields)
|
||||
|
||||
def get_roles(doctype, data, doc):
|
||||
roles = []
|
||||
if doctype == 'Page':
|
||||
for d in doc.roles:
|
||||
if frappe.db.exists('Role', d.role):
|
||||
roles.append({'role': d.role})
|
||||
else:
|
||||
out = frappe.get_all('Custom DocPerm', fields='distinct role', filters=dict(parent = data.ref_doctype))
|
||||
if not out:
|
||||
out = frappe.get_all('DocPerm', fields='distinct role', filters=dict(parent = data.ref_doctype))
|
||||
for d in out:
|
||||
roles.append({'role': d.role})
|
||||
return roles
|
||||
|
||||
def make_custom_roles(doctype, name, roles):
|
||||
field = doctype.lower()
|
||||
|
||||
if roles:
|
||||
custom_permission = frappe.get_doc({
|
||||
'doctype': 'Custom Role',
|
||||
field : name,
|
||||
'roles' : roles
|
||||
}).insert()
|
||||
87
frappe/patches/v8_0/rename_page_role_to_has_role.py
Normal file
87
frappe/patches/v8_0/rename_page_role_to_has_role.py
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
def execute():
|
||||
if not frappe.db.exists('DocType', 'Has Role'):
|
||||
frappe.rename_doc('DocType', 'Page Role', 'Has Role')
|
||||
reload_doc()
|
||||
set_ref_doctype_roles_to_report()
|
||||
copy_user_roles_to_has_roles()
|
||||
set_user_permission_for_page_and_report()
|
||||
remove_doctypes()
|
||||
|
||||
def reload_doc():
|
||||
frappe.reload_doc("core", 'doctype', "page")
|
||||
frappe.reload_doc("core", 'doctype', "report")
|
||||
frappe.reload_doc("core", 'doctype', "user")
|
||||
frappe.reload_doc("core", 'doctype', "has_role")
|
||||
frappe.reload_doc("core", 'doctype', "custom_role")
|
||||
|
||||
def set_ref_doctype_roles_to_report():
|
||||
for data in frappe.get_all('Report', fields=["name"]):
|
||||
doc = frappe.get_doc('Report', data.name)
|
||||
if frappe.db.exists("DocType", doc.ref_doctype):
|
||||
try:
|
||||
doc.set_doctype_roles()
|
||||
for row in doc.roles:
|
||||
row.db_update()
|
||||
except:
|
||||
pass
|
||||
|
||||
def copy_user_roles_to_has_roles():
|
||||
for data in frappe.get_all('User', fields = ["name"]):
|
||||
doc = frappe.get_doc('User', data.name)
|
||||
doc.set('roles',[])
|
||||
for args in frappe.get_all('UserRole', fields = ["role"],
|
||||
filters = {'parent': data.name, 'parenttype': 'User'}):
|
||||
doc.append('roles', {
|
||||
'role': args.role
|
||||
})
|
||||
for role in doc.roles:
|
||||
role.db_update()
|
||||
|
||||
def set_user_permission_for_page_and_report():
|
||||
make_custom_roles_for_page_and_report()
|
||||
|
||||
def make_custom_roles_for_page_and_report():
|
||||
for doctype in ['Page', 'Report']:
|
||||
for data in get_data(doctype):
|
||||
doc = frappe.get_doc(doctype, data.name)
|
||||
roles = get_roles(doctype, data, doc)
|
||||
make_custom_roles(doctype, doc.name, roles)
|
||||
|
||||
def get_data(doctype):
|
||||
fields = ["name"] if doctype == 'Page' else ["name", "ref_doctype"]
|
||||
return frappe.get_all(doctype, fields = fields)
|
||||
|
||||
def get_roles(doctype, data, doc):
|
||||
roles = []
|
||||
if doctype == 'Page':
|
||||
for d in doc.roles:
|
||||
if frappe.db.exists('Role', d.role):
|
||||
roles.append({'role': d.role})
|
||||
else:
|
||||
out = frappe.get_all('Custom DocPerm', fields='distinct role', filters=dict(parent = data.ref_doctype))
|
||||
if not out:
|
||||
out = frappe.get_all('DocPerm', fields='distinct role', filters=dict(parent = data.ref_doctype))
|
||||
for d in out:
|
||||
roles.append({'role': d.role})
|
||||
return roles
|
||||
|
||||
def make_custom_roles(doctype, name, roles):
|
||||
field = doctype.lower()
|
||||
|
||||
if roles:
|
||||
custom_permission = frappe.get_doc({
|
||||
'doctype': 'Custom Role',
|
||||
field : name,
|
||||
'roles' : roles
|
||||
}).insert()
|
||||
|
||||
def remove_doctypes():
|
||||
for doctype in ['UserRole', 'Event Role']:
|
||||
if frappe.db.exists('DocType', doctype):
|
||||
frappe.delete_doc('DocType', doctype)
|
||||
Loading…
Add table
Reference in a new issue