diff --git a/src/resources/OrganizationResource.ts b/src/resources/OrganizationResource.ts index e5a64b7c..c356ad39 100644 --- a/src/resources/OrganizationResource.ts +++ b/src/resources/OrganizationResource.ts @@ -15,6 +15,7 @@ export interface IOrganization { can_create_repo?: boolean; public?: boolean; is_org_admin?: boolean; + is_admin?: boolean; preferred_namespace?: boolean; teams?: string[]; } diff --git a/src/routes/OrganizationsList/Organization/Organization.tsx b/src/routes/OrganizationsList/Organization/Organization.tsx index a025caf5..15620bd3 100644 --- a/src/routes/OrganizationsList/Organization/Organization.tsx +++ b/src/routes/OrganizationsList/Organization/Organization.tsx @@ -12,6 +12,7 @@ import {useCallback, useState} from 'react'; import RepositoriesList from 'src/routes/RepositoriesList/RepositoriesList'; import Settings from './Tabs/Settings/Settings'; import {QuayBreadcrumb} from 'src/components/breadcrumb/Breadcrumb'; +import {useOrganization} from 'src/hooks/UseOrganization'; import RobotAccountsList from 'src/routes/RepositoriesList/RobotAccountsList'; export default function Organization() { @@ -19,6 +20,8 @@ export default function Organization() { const orgName = location.pathname.split('/')[2]; const [searchParams, setSearchParams] = useSearchParams(); + const {organization} = useOrganization(repositoryName); + const [activeTabKey, setActiveTabKey] = useState( searchParams.get('tab') || 'Repositories', ); @@ -35,14 +38,17 @@ export default function Organization() { { name: 'Repositories', component: , + visible: true, }, { name: 'Robot accounts', component: , + visible: organization.is_org_admin || organization.is_admin, }, { name: 'Settings', component: , + visible: organization.is_org_admin || organization.is_admin, }, ]; @@ -62,15 +68,17 @@ export default function Organization() { padding={{default: 'noPadding'}} > - {repositoriesSubNav.map((nav) => ( - {nav.name}} - > - {nav.component} - - ))} + {repositoriesSubNav.map((nav) => { + nav.visible && ( + {nav.name}} + > + {nav.component} + + ); + })}