diff --git a/ui/litellm-dashboard/src/app/(dashboard)/components/SidebarProvider.tsx b/ui/litellm-dashboard/src/app/(dashboard)/components/SidebarProvider.tsx index 8ab54ca6bd7..26f5786b413 100644 --- a/ui/litellm-dashboard/src/app/(dashboard)/components/SidebarProvider.tsx +++ b/ui/litellm-dashboard/src/app/(dashboard)/components/SidebarProvider.tsx @@ -17,15 +17,25 @@ const SidebarProvider = ({ setPage, defaultSelectedKey, sidebarCollapsed }: Side useEffect(() => { const fetchUISettings = async () => { - if (!accessToken) return; + if (!accessToken) { + console.log("[SidebarProvider] No access token, skipping UI settings fetch"); + return; + } try { + console.log("[SidebarProvider] Fetching UI settings from /get/ui_settings"); const settings = await getUISettings(accessToken); - if (settings?.settings?.enabled_ui_pages_internal_users !== undefined) { - setEnabledPagesInternalUsers(settings.settings.enabled_ui_pages_internal_users); + console.log("[SidebarProvider] UI settings response:", settings); + + // API returns 'values' not 'settings' + if (settings?.values?.enabled_ui_pages_internal_users !== undefined) { + console.log("[SidebarProvider] Setting enabled pages:", settings.values.enabled_ui_pages_internal_users); + setEnabledPagesInternalUsers(settings.values.enabled_ui_pages_internal_users); + } else { + console.log("[SidebarProvider] No enabled_ui_pages_internal_users in response (all pages visible by default)"); } } catch (error) { - console.error("Failed to fetch UI settings:", error); + console.error("[SidebarProvider] Failed to fetch UI settings:", error); } }; diff --git a/ui/litellm-dashboard/src/components/leftnav.tsx b/ui/litellm-dashboard/src/components/leftnav.tsx index 442ec24a2a0..c0ffa96b70a 100644 --- a/ui/litellm-dashboard/src/components/leftnav.tsx +++ b/ui/litellm-dashboard/src/components/leftnav.tsx @@ -342,6 +342,15 @@ const Sidebar: React.FC = ({ setPage, defaultSelectedKey, collapse const filterItemsByRole = (items: MenuItem[]): MenuItem[] => { const isAdmin = isAdminRole(userRole); + // Debug logging + if (enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) { + console.log("[LeftNav] Filtering with enabled pages:", { + userRole, + isAdmin, + enabledPagesInternalUsers, + }); + } + return items .filter((item) => { // Special handling for organizations menu item - allow org_admins @@ -351,7 +360,9 @@ const Sidebar: React.FC = ({ setPage, defaultSelectedKey, collapse // Check enabled pages for internal users (non-admins) if (!isAdmin && enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) { - return enabledPagesInternalUsers.includes(item.page); + const isIncluded = enabledPagesInternalUsers.includes(item.page); + console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`); + return isIncluded; } return true; } @@ -361,7 +372,9 @@ const Sidebar: React.FC = ({ setPage, defaultSelectedKey, collapse // Check enabled pages for internal users (non-admins) if (!isAdmin && enabledPagesInternalUsers !== null && enabledPagesInternalUsers !== undefined) { - return enabledPagesInternalUsers.includes(item.page); + const isIncluded = enabledPagesInternalUsers.includes(item.page); + console.log(`[LeftNav] Page "${item.page}" (${item.key}): ${isIncluded ? "VISIBLE" : "HIDDEN"}`); + return isIncluded; } return true;