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;
}