49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
import frappe
|
|
|
|
@frappe.whitelist()
|
|
def get_current_user_data():
|
|
user = frappe.session.user
|
|
|
|
if user == "Guest":
|
|
return None
|
|
|
|
user_doc = frappe.get_doc("User", user)
|
|
|
|
return {
|
|
"email": user_doc.name,
|
|
"full_name": user_doc.full_name,
|
|
"user_image": user_doc.user_image,
|
|
"role_profile_name": user_doc.role_profile_name,
|
|
"roles": [d.role for d in user_doc.roles]
|
|
}
|
|
|
|
|
|
|
|
def set_default_homepage():
|
|
|
|
"""
|
|
Set the default workspace based on the user's role.
|
|
"""
|
|
# Get the current user
|
|
current_user = frappe.session.user
|
|
|
|
# Skip for system users
|
|
if current_user in ("Administrator", "Guest"):
|
|
return
|
|
|
|
# Define role-based workspaces
|
|
role_based_workspaces = {
|
|
"Maintenance Manager": "asset-management",
|
|
#"Maintenance User": "asset-management",
|
|
#"Technician": "asset-management"
|
|
}
|
|
|
|
# Get the user's roles
|
|
user_roles = frappe.get_roles(current_user)
|
|
|
|
# Determine the default workspace
|
|
for role, workspace in role_based_workspaces.items():
|
|
if role in user_roles:
|
|
# Set the session home page
|
|
frappe.local.response["home_page"] = f"/app/{workspace}"
|
|
return |