diff --git a/studio/src/components/GlobalNav/Sidebar.js b/studio/src/components/GlobalNav/Sidebar.js index 04cfa7cf7..59da6947e 100644 --- a/studio/src/components/GlobalNav/Sidebar.js +++ b/studio/src/components/GlobalNav/Sidebar.js @@ -17,6 +17,7 @@ import { import Search from '../Search'; import degaImg from '../../assets/dega.png'; + const { Sider } = Layout; const { SubMenu } = Menu; @@ -85,24 +86,26 @@ function Sidebar({ permission, orgs, loading, applications, menuKey, signOut, or padding: '0.25rem 0.5rem', }; - if (org_role === 'admin') { - resource = resource.concat(protectedResources); - if (!showCoreMenu) { + useEffect(() => { + if (org_role === 'admin' || orgs[0]?.role === 'admin') { + resource = resource.concat(protectedResources); setCoreMenu(true); + } else { + permission.forEach((each) => { + if (!showCoreMenu && protectedResources.includes(each.resource)) { + setCoreMenu(true); + } + resource.push(each.resource); + }); } - } else { - permission.forEach((each) => { - if (!showCoreMenu && protectedResources.includes(each.resource)) { - setCoreMenu(true); - } - resource.push(each.resource); - }); - } + }, [org_role, orgs, permission, showCoreMenu]); + const filteredServices = resource.filter((service) => { + return permission.some((perm) => perm.resource === service); + }); - if (orgs[0]?.role === 'admin') resource = resource.concat(protectedResources); const getMenuItems = (children, index, title) => children.map((route, childIndex) => { - return resource.includes(route.title.toLowerCase()) ? ( + return filteredServices.includes(route.title.toLowerCase()) ? ( ['Events'].indexOf(route.title) !== -1 ? null : (