From 56cba1729cbc47b8ed0c543be42e9b1339bc808c Mon Sep 17 00:00:00 2001 From: kimsehwan96 Date: Tue, 28 Apr 2026 20:19:32 +0900 Subject: [PATCH] [Fix] UI - Allow Proxy Admin Viewer to access /api-keys page The /api-keys page was hard-blocking proxy_admin_viewer at the user_dashboard entry point with an "Access Denied" screen, contradicting the role's own description ("view all keys, view all spend") in litellm/proxy/_types.py and the backend route_checks/admin_viewer_routes/key handler that already allow /key/list and /key/info for this role. Component-level guards (rolesWithWriteAccess in ui/litellm-dashboard/src/utils/roles.ts) already hide the Create / Edit / Delete affordances for this role, so removing the entry-level gate makes the UI consistent with the backend and with sibling viewer-open features (Audit Logs #23419, Spend Logs #26583). --- ui/litellm-dashboard/src/components/user_dashboard.tsx | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/ui/litellm-dashboard/src/components/user_dashboard.tsx b/ui/litellm-dashboard/src/components/user_dashboard.tsx index 90eac56540d..d83c53721e1 100644 --- a/ui/litellm-dashboard/src/components/user_dashboard.tsx +++ b/ui/litellm-dashboard/src/components/user_dashboard.tsx @@ -317,16 +317,6 @@ const UserDashboard: React.FC = ({ setUserRole("App Owner"); } - if (userRole && userRole == "Admin Viewer") { - const { Title, Paragraph } = Typography; - return ( -
- Access Denied - Ask your proxy admin for access to create keys -
- ); - } - console.log("inside user dashboard, selected team", selectedTeam); console.log("All cookies after redirect:", document.cookie); return (