diff --git a/packages/backend/src/graphql/queries/get-permission-catalog.ee.js b/packages/backend/src/graphql/queries/get-permission-catalog.ee.js deleted file mode 100644 index b902315b..00000000 --- a/packages/backend/src/graphql/queries/get-permission-catalog.ee.js +++ /dev/null @@ -1,7 +0,0 @@ -import permissionCatalog from '../../helpers/permission-catalog.ee.js'; - -const getPermissionCatalog = async () => { - return permissionCatalog; -}; - -export default getPermissionCatalog; diff --git a/packages/backend/src/graphql/query-resolvers.js b/packages/backend/src/graphql/query-resolvers.js index 97897970..0a178952 100644 --- a/packages/backend/src/graphql/query-resolvers.js +++ b/packages/backend/src/graphql/query-resolvers.js @@ -9,7 +9,6 @@ import getDynamicFields from './queries/get-dynamic-fields.js'; import getFlow from './queries/get-flow.js'; import getFlows from './queries/get-flows.js'; import getNotifications from './queries/get-notifications.js'; -import getPermissionCatalog from './queries/get-permission-catalog.ee.js'; import getSamlAuthProviderRoleMappings from './queries/get-saml-auth-provider-role-mappings.ee.js'; import getStepWithTestExecutions from './queries/get-step-with-test-executions.js'; import getUsers from './queries/get-users.js'; @@ -27,7 +26,6 @@ const queryResolvers = { getFlow, getFlows, getNotifications, - getPermissionCatalog, getSamlAuthProviderRoleMappings, getStepWithTestExecutions, getUsers, diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql index 68d474b0..90767916 100644 --- a/packages/backend/src/graphql/schema.graphql +++ b/packages/backend/src/graphql/schema.graphql @@ -25,7 +25,6 @@ type Query { ): [SubstepArgument] getBillingAndUsage: GetBillingAndUsage getConfig(keys: [String]): JSONObject - getPermissionCatalog: PermissionCatalog getNotifications: [Notification] getSamlAuthProviderRoleMappings(id: String!): [SamlAuthProvidersRoleMapping] getUsers(limit: Int!, offset: Int!): UserConnection @@ -643,12 +642,6 @@ type Permission { conditions: [String] } -type PermissionCatalog { - actions: [Action] - subjects: [Subject] - conditions: [Condition] -} - type Action { label: String key: String diff --git a/packages/web/src/components/PermissionCatalogField/index.ee.jsx b/packages/web/src/components/PermissionCatalogField/index.ee.jsx index 77aa872b..d298cb75 100644 --- a/packages/web/src/components/PermissionCatalogField/index.ee.jsx +++ b/packages/web/src/components/PermissionCatalogField/index.ee.jsx @@ -10,18 +10,24 @@ import TableHead from '@mui/material/TableHead'; import TableRow from '@mui/material/TableRow'; import Typography from '@mui/material/Typography'; import * as React from 'react'; + import ControlledCheckbox from 'components/ControlledCheckbox'; import usePermissionCatalog from 'hooks/usePermissionCatalog.ee'; import PermissionSettings from './PermissionSettings.ee'; import PermissionCatalogFieldLoader from './PermissionCatalogFieldLoader'; + const PermissionCatalogField = ({ name = 'permissions', disabled = false, defaultChecked = false, }) => { - const { permissionCatalog, loading } = usePermissionCatalog(); + const { data, isLoading: isPermissionCatalogLoading } = + usePermissionCatalog(); + const permissionCatalog = data?.data; const [dialogName, setDialogName] = React.useState(); - if (loading) return ; + + if (isPermissionCatalogLoading) return ; + return ( @@ -29,7 +35,7 @@ const PermissionCatalogField = ({ - {permissionCatalog.actions.map((action) => ( + {permissionCatalog?.actions.map((action) => ( - {permissionCatalog.subjects.map((subject) => ( + {permissionCatalog?.subjects.map((subject) => ( {subject.label} - {permissionCatalog.actions.map((action) => ( + {permissionCatalog?.actions.map((action) => ( {action.subjects.includes(subject.key) && ( @@ -91,8 +97,8 @@ const PermissionCatalogField = ({ onClose={() => setDialogName('')} fieldPrefix={`${name}.${subject.key}`} subject={subject.key} - actions={permissionCatalog.actions} - conditions={permissionCatalog.conditions} + actions={permissionCatalog?.actions} + conditions={permissionCatalog?.conditions} defaultChecked={defaultChecked} /> diff --git a/packages/web/src/graphql/queries/get-permission-catalog.ee.js b/packages/web/src/graphql/queries/get-permission-catalog.ee.js deleted file mode 100644 index 0b107738..00000000 --- a/packages/web/src/graphql/queries/get-permission-catalog.ee.js +++ /dev/null @@ -1,20 +0,0 @@ -import { gql } from '@apollo/client'; -export const GET_PERMISSION_CATALOG = gql` - query GetPermissionCatalog { - getPermissionCatalog { - subjects { - key - label - } - conditions { - key - label - } - actions { - label - key - subjects - } - } - } -`; diff --git a/packages/web/src/hooks/usePermissionCatalog.ee.js b/packages/web/src/hooks/usePermissionCatalog.ee.js index 530595f5..adb34469 100644 --- a/packages/web/src/hooks/usePermissionCatalog.ee.js +++ b/packages/web/src/hooks/usePermissionCatalog.ee.js @@ -1,6 +1,18 @@ -import { useQuery } from '@apollo/client'; -import { GET_PERMISSION_CATALOG } from 'graphql/queries/get-permission-catalog.ee'; +import { useQuery } from '@tanstack/react-query'; + +import api from 'helpers/api'; + export default function usePermissionCatalog() { - const { data, loading } = useQuery(GET_PERMISSION_CATALOG); - return { permissionCatalog: data?.getPermissionCatalog, loading }; + const query = useQuery({ + queryKey: ['permissionCatalog'], + queryFn: async ({ signal }) => { + const { data } = await api.get('/v1/admin/permissions/catalog', { + signal, + }); + + return data; + }, + }); + + return query; }