refactor: remove usage of scopes for CDN access tokens (#6327)

@kamilkisiela 
This commit is contained in:
Laurin Quast 2025-01-10 16:15:18 +01:00 committed by GitHub
parent fe769c919a
commit 70525062f9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 50 deletions

View file

@ -11,9 +11,7 @@ import { AlertTriangleIcon, TrashIcon } from '@/components/ui/icon';
import { SubPageLayout, SubPageLayoutHeader } from '@/components/ui/page-content-layout';
import { Input, Modal, Table, Tag, TBody, Td, TimeAgo, Tr } from '@/components/v2';
import { InlineCode } from '@/components/v2/inline-code';
import { FragmentType, graphql, useFragment } from '@/gql';
import { TargetAccessScope } from '@/gql/graphql';
import { canAccessTarget } from '@/lib/access/target';
import { graphql, useFragment } from '@/gql';
import { Link, useRouter } from '@tanstack/react-router';
const CDNAccessTokeRowFragment = graphql(`
@ -317,12 +315,6 @@ const CDNAccessTokensQuery = graphql(`
}
`);
const CDNAccessTokens_MeFragment = graphql(`
fragment CDNAccessTokens_MeFragment on Member {
...CanAccessTarget_MemberFragment
}
`);
const CDNSearchParams = z.discriminatedUnion('cdn', [
z.object({
cdn: z.literal('create').optional(),
@ -334,13 +326,10 @@ const CDNSearchParams = z.discriminatedUnion('cdn', [
]);
export function CDNAccessTokens(props: {
me: FragmentType<typeof CDNAccessTokens_MeFragment>;
organizationSlug: string;
projectSlug: string;
targetSlug: string;
}): React.ReactElement {
const me = useFragment(CDNAccessTokens_MeFragment, props.me);
const [endCursors, setEndCursors] = useState<Array<string>>([]);
const router = useRouter();
const searchParamsResult = CDNSearchParams.safeParse(router.latestLocation.search);
@ -373,8 +362,6 @@ export function CDNAccessTokens(props: {
requestPolicy: 'cache-and-network',
});
const canManage = canAccessTarget(TargetAccessScope.Settings, me);
return (
<SubPageLayout>
<SubPageLayoutHeader
@ -396,20 +383,18 @@ export function CDNAccessTokens(props: {
</>
}
/>
{canManage && (
<div className="my-3.5 flex justify-between">
<Button asChild>
<Link
search={{
page: 'cdn',
cdn: 'create',
}}
>
Create new CDN token
</Link>
</Button>
</div>
)}
<div className="my-3.5 flex justify-between">
<Button asChild>
<Link
search={{
page: 'cdn',
cdn: 'create',
}}
>
Create new CDN token
</Link>
</Button>
</div>
<Table>
<TBody>
{target?.data?.target?.cdnAccessTokens.edges?.map(edge => {
@ -425,23 +410,21 @@ export function CDNAccessTokens(props: {
created <TimeAgo date={node.createdAt} />
</Td>
<Td align="right">
{canManage ? (
<Button
className="hover:text-red-500"
variant="ghost"
onClick={() => {
void router.navigate({
search: {
page: 'cdn',
cdn: 'delete',
id: node.id,
},
});
}}
>
<TrashIcon />
</Button>
) : null}
<Button
className="hover:text-red-500"
variant="ghost"
onClick={() => {
void router.navigate({
search: {
page: 'cdn',
cdn: 'delete',
id: node.id,
},
});
}}
>
<TrashIcon />
</Button>
</Td>
</Tr>
);

View file

@ -1013,7 +1013,6 @@ const TargetSettingsPage_OrganizationFragment = graphql(`
me {
...CanAccessTarget_MemberFragment
...RegistryAccessTokens_MeFragment
...CDNAccessTokens_MeFragment
}
}
`);
@ -1072,9 +1071,6 @@ const TargetSettingsPageQuery = graphql(`
id
slug
...TargetSettingsPage_OrganizationFragment
me {
...CDNAccessTokens_MeFragment
}
}
}
project(selector: { organizationSlug: $organizationSlug, projectSlug: $projectSlug }) {
@ -1279,7 +1275,6 @@ function TargetSettingsContent(props: {
) : null}
{resolvedPage.key === 'cdn' ? (
<CDNAccessTokens
me={organizationForSettings.me}
organizationSlug={props.organizationSlug}
projectSlug={props.projectSlug}
targetSlug={props.targetSlug}