Merge pull request #45924 from PatrickDEissler/develop

fix(Employee): remove User Permissions if create_user_permission is unchecked
This commit is contained in:
Raffael Meyer
2025-03-14 13:57:42 +01:00
committed by GitHub

View File

@@ -85,20 +85,21 @@ class Employee(NestedSet):
self.reset_employee_emails_cache() self.reset_employee_emails_cache()
def update_user_permissions(self): def update_user_permissions(self):
if not self.create_user_permission: if not has_permission("User Permission", ptype="write", print_logs=False) or (
return not self.has_value_changed("user_id") and not self.has_value_changed("create_user_permission")
if not has_permission("User Permission", ptype="write", print_logs=False): ):
return return
employee_user_permission_exists = frappe.db.exists( employee_user_permission_exists = frappe.db.exists(
"User Permission", {"allow": "Employee", "for_value": self.name, "user": self.user_id} "User Permission", {"allow": "Employee", "for_value": self.name, "user": self.user_id}
) )
if employee_user_permission_exists: if employee_user_permission_exists and not self.create_user_permission:
return remove_user_permission("Employee", self.name, self.user_id)
remove_user_permission("Company", self.company, self.user_id)
add_user_permission("Employee", self.name, self.user_id) elif not employee_user_permission_exists and self.create_user_permission:
add_user_permission("Company", self.company, self.user_id) add_user_permission("Employee", self.name, self.user_id)
add_user_permission("Company", self.company, self.user_id)
def update_user(self): def update_user(self):
# add employee role if missing # add employee role if missing