diff --git a/packages/services/api/src/modules/schema/providers/schema-version-helper.ts b/packages/services/api/src/modules/schema/providers/schema-version-helper.ts index 24e4bde70b5..86bc1df38c6 100644 --- a/packages/services/api/src/modules/schema/providers/schema-version-helper.ts +++ b/packages/services/api/src/modules/schema/providers/schema-version-helper.ts @@ -330,7 +330,7 @@ export class SchemaVersionHelper { return schemaLog?.sdl ?? null; } - async getIsValid(schemaVersion: SchemaVersion) { + getIsValid(schemaVersion: SchemaVersion) { return schemaVersion.isComposable && schemaVersion.hasContractCompositionErrors === false; } diff --git a/packages/web/app/src/components/target/settings/registry-access-token.tsx b/packages/web/app/src/components/target/settings/registry-access-token.tsx index 9e49b4ac540..bf3a46424c0 100644 --- a/packages/web/app/src/components/target/settings/registry-access-token.tsx +++ b/packages/web/app/src/components/target/settings/registry-access-token.tsx @@ -1,9 +1,9 @@ import { useState } from 'react'; import { useForm, UseFormReturn } from 'react-hook-form'; -import { AnyVariables, useMutation, UseMutationState, useQuery } from 'urql'; +import { AnyVariables, useMutation, UseMutationState } from 'urql'; import { z } from 'zod'; import { Tag } from '@/components//v2/tag'; -import { PermissionScopeItem, usePermissionsManager } from '@/components/organization/Permissions'; +import { PermissionScopeItem } from '@/components/organization/Permissions'; import { Button } from '@/components/ui/button'; import { Dialog, @@ -18,7 +18,7 @@ import { Input } from '@/components/ui/input'; import { InputCopy } from '@/components/ui/input-copy'; import { useToast } from '@/components/ui/use-toast'; import { Accordion } from '@/components/v2/accordion'; -import { FragmentType, graphql, useFragment } from '@/gql'; +import { graphql } from '@/gql'; import { TargetAccessScope } from '@/gql/graphql'; import { RegistryAccessScope } from '@/lib/access/common'; import { zodResolver } from '@hookform/resolvers/zod'; @@ -48,16 +48,6 @@ export const CreateAccessToken_CreateTokenMutation = graphql(` } `); -const CreateAccessTokenModalQuery = graphql(` - query CreateAccessTokenModalQuery($organizationSlug: String!) { - organization(selector: { organizationSlug: $organizationSlug }) { - organization { - ...CreateAccessTokenModalContent_OrganizationFragment - } - } - } -`); - export function CreateAccessTokenModal(props: { isOpen: boolean; toggleModalOpen: () => void; @@ -66,52 +56,19 @@ export function CreateAccessTokenModal(props: { targetSlug: string; }) { const { isOpen, toggleModalOpen } = props; - const [organizationQuery] = useQuery({ - query: CreateAccessTokenModalQuery, - variables: { - organizationSlug: props.organizationSlug, - }, - }); - - const organization = organizationQuery.data?.organization?.organization; return ( - {organization ? ( - - ) : ( - - - Organization not found - - The organization you are trying to access does not exist. - - - - - - - )} + ); } -const CreateAccessTokenModalContent_OrganizationFragment = graphql(` - fragment CreateAccessTokenModalContent_OrganizationFragment on Organization { - id - ...UsePermissionManager_OrganizationFragment - me { - ...UsePermissionManager_MemberFragment - } - } -`); - function getFinalTargetAccessScopes( selectedScope: 'no-access' | TargetAccessScope, ): Array { @@ -142,25 +99,14 @@ const createRegistryTokenFormSchema = z.object({ }); export function ModalContent(props: { - organization: FragmentType; organizationSlug: string; projectSlug: string; targetSlug: string; toggleModalOpen: () => void; }) { const { toast } = useToast(); - const organization = useFragment( - CreateAccessTokenModalContent_OrganizationFragment, - props.organization, - ); const [selectedScope, setSelectedScope] = useState<'no-access' | TargetAccessScope>('no-access'); - const manager = usePermissionsManager({ - organization, - member: organization.me, - passMemberScopes: false, - }); - const form = useForm>({ mode: 'onChange', resolver: zodResolver(createRegistryTokenFormSchema), @@ -205,7 +151,6 @@ export function ModalContent(props: { return ( >; onSubmit: (values: z.infer) => void; - manager: ReturnType; setSelectedScope: (scope: 'no-access' | TargetAccessScope) => void; selectedScope: 'no-access' | TargetAccessScope; toggleModalOpen: () => void; @@ -292,11 +236,8 @@ export function GenerateTokenContent(props: { dataCy="registry-access-scope" key={props.selectedScope} scope={RegistryAccessScope} - canManageScope={ - props.manager.canAccessTarget(RegistryAccessScope.mapping['read-only']) || - props.manager.canAccessTarget(RegistryAccessScope.mapping['read-write']) - } - checkAccess={props.manager.canAccessTarget} + canManageScope + checkAccess={() => true} onChange={value => { if (value === 'no-access') { props.setSelectedScope('no-access'); diff --git a/packages/web/app/src/components/v2/modals/transfer-organization-ownership.tsx b/packages/web/app/src/components/v2/modals/transfer-organization-ownership.tsx index 98f54d1e547..bb306a9ddd3 100644 --- a/packages/web/app/src/components/v2/modals/transfer-organization-ownership.tsx +++ b/packages/web/app/src/components/v2/modals/transfer-organization-ownership.tsx @@ -62,9 +62,6 @@ const MemberFields = graphql(` email } isOwner - organizationAccessScopes - projectAccessScopes - targetAccessScopes } `); @@ -240,9 +237,6 @@ export const TransferOrganizationOwnershipModal = ({ > {({ selected }: { selected?: boolean }) => (
- {/*
- -
*/}
{member.user.displayName}
diff --git a/packages/web/app/src/lib/access/target.ts b/packages/web/app/src/lib/access/target.ts index 4477eb6a5f6..5f8c22ccb64 100644 --- a/packages/web/app/src/lib/access/target.ts +++ b/packages/web/app/src/lib/access/target.ts @@ -1,6 +1,5 @@ import { FragmentType, graphql, useFragment } from '@/gql'; import { TargetAccessScope } from '@/gql/graphql'; -import { useRedirect } from './common'; export { TargetAccessScope }; @@ -23,40 +22,3 @@ export function canAccessTarget( return member.targetAccessScopes.includes(scope); } - -export function useTargetAccess({ - scope, - member: mmember, - redirect = false, - organizationSlug, - projectSlug, - targetSlug, -}: { - scope: TargetAccessScope; - member: null | FragmentType; - redirect?: boolean; - organizationSlug: string; - projectSlug: string; - targetSlug: string; -}) { - const member = useFragment(CanAccessTarget_MemberFragment, mmember); - const canAccess = canAccessTarget(scope, mmember); - useRedirect({ - canAccess, - redirectTo: redirect - ? router => { - void router.navigate({ - to: '/$organizationSlug/$projectSlug/$targetSlug', - params: { - organizationSlug, - projectSlug, - targetSlug, - }, - }); - } - : undefined, - entity: member, - }); - - return canAccess; -} diff --git a/packages/web/app/src/stories/registry-access-token.stories.tsx b/packages/web/app/src/stories/registry-access-token.stories.tsx deleted file mode 100644 index f4c8c3ba371..00000000000 --- a/packages/web/app/src/stories/registry-access-token.stories.tsx +++ /dev/null @@ -1,119 +0,0 @@ -import { useState } from 'react'; -import { useForm } from 'react-hook-form'; -import { z } from 'zod'; -import { usePermissionsManager } from '@/components/organization/Permissions'; -import { - CreatedTokenContent, - GenerateTokenContent, -} from '@/components/target/settings/registry-access-token'; -import { Button } from '@/components/ui/button'; -import { Dialog, DialogTrigger } from '@/components/ui/dialog'; -import { TargetAccessScope } from '@/gql/graphql'; -import { zodResolver } from '@hookform/resolvers/zod'; -import { Meta, StoryObj } from '@storybook/react'; - -const meta: Meta = { - title: 'Modals/Create Access Token', - component: CreatedTokenContent, -}; - -export default meta; -type Story = StoryObj; - -const formSchema = z.object({ - tokenDescription: z - .string() - .min(2, { message: 'Token description must be at least 2 characters long' }), -}); - -export const GenerateToken: Story = { - render: () => { - const [openModal, setOpenModal] = useState(false); - const toggleModalOpen = () => setOpenModal(!openModal); - - const form = useForm>({ - mode: 'onChange', - resolver: zodResolver(formSchema), - defaultValues: { - tokenDescription: '', - }, - }); - - const manager = { - canAccessOrganization: () => true, - canAccessProject: () => true, - canAccessTarget: () => true, - noneSelected: false, - organizationScopes: [], - projectScopes: [], - targetScopes: [], - setOrganizationScopes: () => {}, - setProjectScopes: () => {}, - setTargetScopes: () => {}, - submit: () => {}, - } as unknown as ReturnType; - - const [selectedScope, setSelectedScope] = useState<'no-access' | TargetAccessScope>( - 'no-access', - ); - const noPermissionsSelected = selectedScope === 'no-access'; - - return ( - - - - - console.log('Submit:', values)} - selectedScope={selectedScope} - setSelectedScope={setSelectedScope} - toggleModalOpen={toggleModalOpen} - /> - - ); - }, -}; - -export const CreatedToken: Story = { - render: () => { - const [openModal, setOpenModal] = useState(false); - const toggleModalOpen = () => setOpenModal(!openModal); - - return ( - - - - - - - ); - }, -};