From c93fbf3982d7ba035ab2f42db609a087edd917ac Mon Sep 17 00:00:00 2001 From: diptanilsaha Date: Mon, 13 Oct 2025 01:35:26 +0530 Subject: [PATCH] fix: set default roles on role_profile during reinstallation (cherry picked from commit 12c1b8a9102b9cddd589bb4f7a3015dfc478e376) --- erpnext/setup/install.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py index 9491da7ec3b..b826c52f20e 100644 --- a/erpnext/setup/install.py +++ b/erpnext/setup/install.py @@ -262,6 +262,20 @@ def update_roles(): def create_default_role_profiles(): for role_profile_name, roles in DEFAULT_ROLE_PROFILES.items(): + if frappe.db.exists("Role Profile", role_profile_name): + role_profile = frappe.get_doc("Role Profile", role_profile_name) + existing_roles = [row.role for row in role_profile.roles] + + role_profile.roles = [row for row in role_profile.roles if row.role in roles] + + for role in roles: + if role not in existing_roles: + role_profile.append("roles", {"role": role}) + + role_profile.save(ignore_permissions=True) + + continue + role_profile = frappe.new_doc("Role Profile") role_profile.role_profile = role_profile_name for role in roles: