diff --git a/erpnext/portal/utils.py b/erpnext/portal/utils.py index 1d74335854c9372cefdae393837c01c454365828..3c1f096f3bb86639eceada057d94e556f306d891 100644 --- a/erpnext/portal/utils.py +++ b/erpnext/portal/utils.py @@ -6,7 +6,7 @@ def set_default_role(doc, method): if frappe.flags.setting_role or frappe.flags.in_migrate: return # Won't work in async task - if doc.get("role_profile") or doc.get("role_profiles"): + if doc.get("role_profile_name") or doc.get("role_profiles"): return # It's not possible to add the Customer/Supplier role roles = frappe.get_roles(doc.name) @@ -160,12 +160,13 @@ def update_linked_user(doctype, docname, doc): return frappe.get_doc("User", doc.user) def update_role_profile(user, role_profile): - if role_profile != user.role_profile_name: - user.role_profile_name = role_profile - try: - user.save(ignore_permissions=True) - except Exception: - frappe.log_error() + if user.get("role_profiles", {"role_profile": role_profile}): + return + user.append("role_profiles", {"role_profile": role_profile}) + try: + user.save(ignore_permissions=True) + except Exception: + frappe.log_error() user = get_linked_user(doc) dt_has_field = frappe.get_meta(doctype).has_field("role_profile_name") diff --git a/erpnext/setup/doctype/customer_group/customer_group.py b/erpnext/setup/doctype/customer_group/customer_group.py index 06afb701f4b190480abafdf3a05a152a1c64d369..48f395cd39c6d663f91d4c735c50cf8bcb5595e8 100644 --- a/erpnext/setup/doctype/customer_group/customer_group.py +++ b/erpnext/setup/doctype/customer_group/customer_group.py @@ -22,7 +22,7 @@ class CustomerGroup(NestedSet): self.update_user_role() def update_user_role(self): - customer_has_role_profile = frappe.get_meta("Supplier").has_field("role_profile_name") + customer_has_role_profile = frappe.get_meta("Customer").has_field("role_profile_name") fields = ["name", "role_profile_name"] if customer_has_role_profile else ["name"] for customer in frappe.get_all( "Customer", filters={"disabled": 0, "customer_group": self.name}, fields=fields