fix(c5,arch-021): system dashboard nav entry only for system admins
This commit is contained in:
@@ -79,16 +79,20 @@ export function Sidebar() {
|
||||
};
|
||||
|
||||
const allMenuItems = useMemo(() => {
|
||||
const staticItems = singleItems.map(item => ({
|
||||
path: item.to,
|
||||
labelKey: item.labelKey,
|
||||
label: item.labelKey,
|
||||
icon: item.icon,
|
||||
order: item.order,
|
||||
group: undefined as string | undefined,
|
||||
isStatic: true as const,
|
||||
permission: item.to === '/dashboard' ? 'dashboard:read' : item.to === '/contacts' ? 'contacts:read' : undefined,
|
||||
}));
|
||||
const staticItems = singleItems
|
||||
// Backend enforces require_admin on system dashboard routes — hide the
|
||||
// nav entry from non-admin users instead of showing a dead link.
|
||||
.filter(item => item.to !== '/system-dashboard' || user?.is_system_admin)
|
||||
.map(item => ({
|
||||
path: item.to,
|
||||
labelKey: item.labelKey,
|
||||
label: item.labelKey,
|
||||
icon: item.icon,
|
||||
order: item.order,
|
||||
group: undefined as string | undefined,
|
||||
isStatic: true as const,
|
||||
permission: item.to === '/dashboard' ? 'dashboard:read' : item.to === '/contacts' ? 'contacts:read' : undefined,
|
||||
}));
|
||||
|
||||
const pluginItems = (manifests || [])
|
||||
.flatMap((m) => (Array.isArray(m.menu_items) ? m.menu_items : []))
|
||||
|
||||
Reference in New Issue
Block a user