Add patch to skip user perm check for doctype (#14873)
* Add patch to skip user perm check for doctype Skip user permission check for doctypes where department link field was recently added * Remove new doctype entries * Skip doctypes if department field already exists (custom field) * Add patch to set department value based on employee * Update set_department_for_doctypes.py * Update skip_user_permission_check_for_department.py
This commit is contained in:
parent
f926911399
commit
6dfc165193
@ -555,5 +555,7 @@ execute:frappe.db.sql("update `tabDesktop Icon` set type = 'module' where module
|
|||||||
erpnext.patches.v11_0.set_salary_component_properties
|
erpnext.patches.v11_0.set_salary_component_properties
|
||||||
erpnext.patches.v11_0.set_user_permissions_for_department
|
erpnext.patches.v11_0.set_user_permissions_for_department
|
||||||
erpnext.patches.v11_0.hr_ux_cleanups
|
erpnext.patches.v11_0.hr_ux_cleanups
|
||||||
|
erpnext.patches.v11_0.skip_user_permission_check_for_department
|
||||||
|
erpnext.patches.v11_0.set_department_for_doctype
|
||||||
erpnext.patches.v11_0.update_allow_transfer_for_manufacture
|
erpnext.patches.v11_0.update_allow_transfer_for_manufacture
|
||||||
erpnext.patches.v11_0.rename_healthcare_doctype_and_fields
|
erpnext.patches.v11_0.rename_healthcare_doctype_and_fields
|
||||||
|
16
erpnext/patches/v11_0/set_department_for_doctypes.py
Normal file
16
erpnext/patches/v11_0/set_department_for_doctypes.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
# Set department value based on employee value
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
|
||||||
|
doctypes_to_update = ['Appraisal', 'Leave Allocation', 'Expense Claim', 'Instructor', 'Salary Slip',
|
||||||
|
'Attendance', 'Training Feedback', 'Training Result Employee',
|
||||||
|
'Leave Application', 'Employee Advance', 'Activity Cost', 'Training Event Employee',
|
||||||
|
'Timesheet', 'Sales Person', 'Payroll Employee Detail']
|
||||||
|
|
||||||
|
for doctype in doctypes_to_update:
|
||||||
|
frappe.db.sql("""
|
||||||
|
update `tab%s` dt
|
||||||
|
set department=(select department from `tabEmployee` where name=dt.employee)
|
||||||
|
""" % doctype)
|
@ -0,0 +1,28 @@
|
|||||||
|
import frappe
|
||||||
|
|
||||||
|
# Skips user permission check for doctypes where department link field was recently added
|
||||||
|
# https://github.com/frappe/erpnext/pull/14121
|
||||||
|
|
||||||
|
def execute():
|
||||||
|
user_permissions = frappe.get_all("User Permission",
|
||||||
|
filters=[['allow', '=', 'Department']],
|
||||||
|
fields=['name', 'skip_for_doctype'])
|
||||||
|
|
||||||
|
doctypes_to_skip = []
|
||||||
|
|
||||||
|
for doctype in ['Appraisal', 'Leave Allocation', 'Expense Claim', 'Instructor', 'Salary Slip',
|
||||||
|
'Attendance', 'Training Feedback', 'Training Result Employee',
|
||||||
|
'Leave Application', 'Employee Advance', 'Activity Cost', 'Training Event Employee',
|
||||||
|
'Timesheet', 'Sales Person', 'Payroll Employee Detail']:
|
||||||
|
if frappe.db.exists('Custom Field', { 'dt': doctype, 'fieldname': 'department'}): continue
|
||||||
|
doctypes_to_skip.append(doctype)
|
||||||
|
|
||||||
|
for perm in user_permissions:
|
||||||
|
skip_for_doctype = perm.get('skip_for_doctype')
|
||||||
|
|
||||||
|
skip_for_doctype = skip_for_doctype.split('\n') + doctypes_to_skip
|
||||||
|
skip_for_doctype = set(skip_for_doctype) # to remove duplicates
|
||||||
|
skip_for_doctype = '\n'.join(skip_for_doctype) # convert back to string
|
||||||
|
|
||||||
|
frappe.set_value('User Permission', perm.name, 'skip_for_doctype', skip_for_doctype)
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user