Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,13 @@ function set_child_filters(frm) {
frm.set_query("mode_of_payment", "mode_of_payment", function () {
return { filters: { type: ["in", ["Cash", "Bank"]] } };
});
}

// Filter roles shown in user child table
frm.set_query("role", "user", function () {
return {
filters: {
name: ["in", ["Branch User", "Sales Manager", "Damage User", "Stock User"]]
}
};
});
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,13 @@ def before_save(self):
if old_doc.get("company"):
delete_permission(user, "Company", old_doc.company)

delete_permission(user, "Branch", old_doc.branch)

for w in old_doc.warehouse:
delete_permission(user, "Warehouse", w.warehouse)

for c in old_doc.cost_center:
delete_permission(user, "Cost Center", c.cost_center)

# Remove role if user is not in any other Branch Configuration
# Find what role they had in this branch
old_role = None
for old_u in old_doc.user:
if old_u.user == user:
Expand All @@ -82,8 +79,6 @@ def create_permissions(self):
if self.company:
create_permission(u.user, "Company", self.company, is_default=1)

create_permission(u.user, "Branch", self.branch)

for idx, w in enumerate(self.warehouse):
# First warehouse is the default
create_permission(u.user, "Warehouse", w.warehouse, is_default=1 if idx == 0 else 0)
Expand Down Expand Up @@ -196,10 +191,28 @@ def _assign_role(user, role):
}).insert(ignore_permissions=True)


def _set_module_profile(user, profile_name):
"""Set the Module Profile on a user if not already set."""
def _set_module_profile_for_role(user, role):
"""Set Module Profile based on assigned role."""
role_profile_map = {
"Branch User": "Branch User",
"Damage User": "Damage User",
"Sales Manager": "Sales Manager",
"Stock User": "Stock User",
}

profile_name = role_profile_map.get(role)
if not profile_name:
return

if not frappe.db.exists("Module Profile", profile_name):
frappe.msgprint(
f"Module Profile <b>{profile_name}</b> does not exist. "
f"Please create it in Setup > Module Profile.",
indicator="orange",
alert=True
)
return

current = frappe.db.get_value("User", user, "module_profile")
if current != profile_name:
frappe.db.set_value("User", user, "module_profile", profile_name)
Expand All @@ -225,4 +238,4 @@ def _maybe_remove_role(user, role, exclude_branch=None):
if not has_role_elsewhere:
user_doc = frappe.get_doc("User", user)
if role in [r.role for r in user_doc.roles]:
user_doc.remove_roles(role)
user_doc.remove_roles(role)
Loading
Loading