From 7de5bdd802ffa848565d2f0f29ab4aed7eb806d8 Mon Sep 17 00:00:00 2001 From: Jonathan King Date: Fri, 16 Dec 2022 13:39:09 -0800 Subject: [PATCH 1/2] ui: Hide organization settings when user is not admin --- src/resources/OrganizationResource.ts | 1 + .../Organization/Organization.tsx | 25 ++++++++++++------- 2 files changed, 17 insertions(+), 9 deletions(-) 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 cba89ed2..85ce6963 100644 --- a/src/routes/OrganizationsList/Organization/Organization.tsx +++ b/src/routes/OrganizationsList/Organization/Organization.tsx @@ -12,12 +12,15 @@ 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'; export default function Organization() { const location = useLocation(); const repositoryName = location.pathname.split('/')[2]; const [searchParams, setSearchParams] = useSearchParams(); + const {organization} = useOrganization(repositoryName); + const [activeTabKey, setActiveTabKey] = useState( searchParams.get('tab') || 'Repositories', ); @@ -34,10 +37,12 @@ export default function Organization() { { name: 'Repositories', component: , + visible: true, }, { name: 'Settings', component: , + visible: organization.is_org_admin || organization.is_admin, }, ]; @@ -57,15 +62,17 @@ export default function Organization() { padding={{default: 'noPadding'}} > - {repositoriesSubNav.map((nav) => ( - {nav.name}} - > - {nav.component} - - ))} + {repositoriesSubNav.map((nav) => { + nav.visible && ( + {nav.name}} + > + {nav.component} + + ); + })} From 4300305f0a53699522306803ed229ad389d8b629 Mon Sep 17 00:00:00 2001 From: Jonathan King Date: Mon, 17 Apr 2023 13:32:00 -0700 Subject: [PATCH 2/2] add visibility for robot accounts --- src/routes/OrganizationsList/Organization/Organization.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/routes/OrganizationsList/Organization/Organization.tsx b/src/routes/OrganizationsList/Organization/Organization.tsx index 907280a7..15620bd3 100644 --- a/src/routes/OrganizationsList/Organization/Organization.tsx +++ b/src/routes/OrganizationsList/Organization/Organization.tsx @@ -43,6 +43,7 @@ export default function Organization() { { name: 'Robot accounts', component: , + visible: organization.is_org_admin || organization.is_admin, }, { name: 'Settings',