From f4153b5dccce85721b11466264463795a59c86bf Mon Sep 17 00:00:00 2001 From: Bryan Frimin Date: Sat, 17 Jan 2026 13:33:55 -0800 Subject: [PATCH] Fix missing canUpdate and canDelete Signed-off-by: Bryan Frimin --- ...ightsRequestGraphCreateMutation.graphql.ts | 36 ++++++++++++++++--- ...pplicabilityControlsTabFragment.graphql.ts | 12 +++---- ...cabilityControlsTabRefetchQuery.graphql.ts | 16 ++++----- ...teOfApplicabilityGraphNodeQuery.graphql.ts | 14 ++++---- .../src/hooks/graph/RightsRequestGraph.ts | 2 ++ .../tabs/StateOfApplicabilityControlsTab.tsx | 4 +-- 6 files changed, 57 insertions(+), 27 deletions(-) diff --git a/apps/console/src/__generated__/core/RightsRequestGraphCreateMutation.graphql.ts b/apps/console/src/__generated__/core/RightsRequestGraphCreateMutation.graphql.ts index b7f2b97bf..d0f06af9e 100644 --- a/apps/console/src/__generated__/core/RightsRequestGraphCreateMutation.graphql.ts +++ b/apps/console/src/__generated__/core/RightsRequestGraphCreateMutation.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<77e3b75def25c670d0c069140d111507>> + * @generated SignedSource<<909c79c6abb5022e54ee451e7e6292be>> * @lightSyntaxTransform * @nogrep */ @@ -30,6 +30,8 @@ export type RightsRequestGraphCreateMutation$data = { readonly rightsRequestEdge: { readonly node: { readonly actionTaken: string | null | undefined; + readonly canDelete: boolean; + readonly canUpdate: boolean; readonly contact: string | null | undefined; readonly createdAt: string; readonly dataSubject: string | null | undefined; @@ -88,6 +90,32 @@ v3 = { "name": "id", "storageKey": null }, + { + "alias": "canDelete", + "args": [ + { + "kind": "Literal", + "name": "action", + "value": "core:rights-request:delete" + } + ], + "kind": "ScalarField", + "name": "permission", + "storageKey": "permission(action:\"core:rights-request:delete\")" + }, + { + "alias": "canUpdate", + "args": [ + { + "kind": "Literal", + "name": "action", + "value": "core:rights-request:update" + } + ], + "kind": "ScalarField", + "name": "permission", + "storageKey": "permission(action:\"core:rights-request:update\")" + }, { "alias": null, "args": null, @@ -216,16 +244,16 @@ return { ] }, "params": { - "cacheID": "2642d9a5f58aa90190df6ccf73e6e06f", + "cacheID": "be9d2829a9ca6909ab3b4d23c15eb7bc", "id": null, "metadata": {}, "name": "RightsRequestGraphCreateMutation", "operationKind": "mutation", - "text": "mutation RightsRequestGraphCreateMutation(\n $input: CreateRightsRequestInput!\n) {\n createRightsRequest(input: $input) {\n rightsRequestEdge {\n node {\n id\n requestType\n requestState\n dataSubject\n contact\n details\n deadline\n actionTaken\n createdAt\n }\n }\n }\n}\n" + "text": "mutation RightsRequestGraphCreateMutation(\n $input: CreateRightsRequestInput!\n) {\n createRightsRequest(input: $input) {\n rightsRequestEdge {\n node {\n id\n canDelete: permission(action: \"core:rights-request:delete\")\n canUpdate: permission(action: \"core:rights-request:update\")\n requestType\n requestState\n dataSubject\n contact\n details\n deadline\n actionTaken\n createdAt\n }\n }\n }\n}\n" } }; })(); -(node as any).hash = "98fa74d3219cf56655e74441af4dc01d"; +(node as any).hash = "707197faed79239f374134145ccd1639"; export default node; diff --git a/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabFragment.graphql.ts b/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabFragment.graphql.ts index d9ff9cb7f..142a9ac37 100644 --- a/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabFragment.graphql.ts +++ b/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabFragment.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<1e93345ca5370e4fdf20719ac86b8078>> * @lightSyntaxTransform * @nogrep */ @@ -96,12 +96,12 @@ const node: ReaderFragment = { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:create" + "value": "core:state-of-applicability-control-mapping:create" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:create\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:create\")" }, { "alias": "canDeleteStateOfApplicabilityControlMapping", @@ -109,12 +109,12 @@ const node: ReaderFragment = { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:delete" + "value": "core:state-of-applicability-control-mapping:delete" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:delete\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:delete\")" }, { "alias": null, @@ -223,6 +223,6 @@ const node: ReaderFragment = { "abstractKey": null }; -(node as any).hash = "70183a65cc3c55a9ffddb4c2824bf5a7"; +(node as any).hash = "37dd1660caf4dea39bb697b99a8bf511"; export default node; diff --git a/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabRefetchQuery.graphql.ts b/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabRefetchQuery.graphql.ts index 74ce42302..9c94454d6 100644 --- a/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabRefetchQuery.graphql.ts +++ b/apps/console/src/__generated__/core/StateOfApplicabilityControlsTabRefetchQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<<82aac43cc256062befe9f2126eb20c4e>> * @lightSyntaxTransform * @nogrep */ @@ -126,12 +126,12 @@ return { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:create" + "value": "core:state-of-applicability-control-mapping:create" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:create\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:create\")" }, { "alias": "canDeleteStateOfApplicabilityControlMapping", @@ -139,12 +139,12 @@ return { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:delete" + "value": "core:state-of-applicability-control-mapping:delete" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:delete\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:delete\")" }, { "alias": null, @@ -258,16 +258,16 @@ return { ] }, "params": { - "cacheID": "7faadf001782b3aae9b9af0ce5ffa7a5", + "cacheID": "fd5b512b7274ba6a3047960c796c82bf", "id": null, "metadata": {}, "name": "StateOfApplicabilityControlsTabRefetchQuery", "operationKind": "query", - "text": "query StateOfApplicabilityControlsTabRefetchQuery(\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...StateOfApplicabilityControlsTabFragment\n id\n }\n}\n\nfragment StateOfApplicabilityControlsTabFragment on StateOfApplicability {\n id\n controlsInfo: controls(first: 0) {\n totalCount\n }\n canCreateStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability:control-mapping:create\")\n canDeleteStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability:control-mapping:delete\")\n availableControls {\n controlId\n sectionTitle\n name\n frameworkId\n frameworkName\n organizationId\n stateOfApplicabilityId\n applicability\n justification\n bestPractice\n regulatory\n contractual\n riskAssessment\n }\n}\n" + "text": "query StateOfApplicabilityControlsTabRefetchQuery(\n $id: ID!\n) {\n node(id: $id) {\n __typename\n ...StateOfApplicabilityControlsTabFragment\n id\n }\n}\n\nfragment StateOfApplicabilityControlsTabFragment on StateOfApplicability {\n id\n controlsInfo: controls(first: 0) {\n totalCount\n }\n canCreateStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability-control-mapping:create\")\n canDeleteStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability-control-mapping:delete\")\n availableControls {\n controlId\n sectionTitle\n name\n frameworkId\n frameworkName\n organizationId\n stateOfApplicabilityId\n applicability\n justification\n bestPractice\n regulatory\n contractual\n riskAssessment\n }\n}\n" } }; })(); -(node as any).hash = "70183a65cc3c55a9ffddb4c2824bf5a7"; +(node as any).hash = "37dd1660caf4dea39bb697b99a8bf511"; export default node; diff --git a/apps/console/src/__generated__/core/StateOfApplicabilityGraphNodeQuery.graphql.ts b/apps/console/src/__generated__/core/StateOfApplicabilityGraphNodeQuery.graphql.ts index c6a5b2e4a..86911e9f3 100644 --- a/apps/console/src/__generated__/core/StateOfApplicabilityGraphNodeQuery.graphql.ts +++ b/apps/console/src/__generated__/core/StateOfApplicabilityGraphNodeQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<74ef0d7b05d90eaaac07851cfb57409f>> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ @@ -260,12 +260,12 @@ return { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:create" + "value": "core:state-of-applicability-control-mapping:create" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:create\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:create\")" }, { "alias": "canDeleteStateOfApplicabilityControlMapping", @@ -273,12 +273,12 @@ return { { "kind": "Literal", "name": "action", - "value": "core:state-of-applicability:control-mapping:delete" + "value": "core:state-of-applicability-control-mapping:delete" } ], "kind": "ScalarField", "name": "permission", - "storageKey": "permission(action:\"core:state-of-applicability:control-mapping:delete\")" + "storageKey": "permission(action:\"core:state-of-applicability-control-mapping:delete\")" }, { "alias": null, @@ -386,12 +386,12 @@ return { ] }, "params": { - "cacheID": "dfdfadde088e82025aaa6c9c290f96b6", + "cacheID": "6189c0ca41e3327629d744a658cbe6f1", "id": null, "metadata": {}, "name": "StateOfApplicabilityGraphNodeQuery", "operationKind": "query", - "text": "query StateOfApplicabilityGraphNodeQuery(\n $stateOfApplicabilityId: ID!\n) {\n node(id: $stateOfApplicabilityId) {\n __typename\n ... on StateOfApplicability {\n id\n name\n sourceId\n snapshotId\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:state-of-applicability:update\")\n canDelete: permission(action: \"core:state-of-applicability:delete\")\n organization {\n id\n }\n owner {\n id\n fullName\n }\n ...StateOfApplicabilityControlsTabFragment\n }\n id\n }\n}\n\nfragment StateOfApplicabilityControlsTabFragment on StateOfApplicability {\n id\n controlsInfo: controls(first: 0) {\n totalCount\n }\n canCreateStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability:control-mapping:create\")\n canDeleteStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability:control-mapping:delete\")\n availableControls {\n controlId\n sectionTitle\n name\n frameworkId\n frameworkName\n organizationId\n stateOfApplicabilityId\n applicability\n justification\n bestPractice\n regulatory\n contractual\n riskAssessment\n }\n}\n" + "text": "query StateOfApplicabilityGraphNodeQuery(\n $stateOfApplicabilityId: ID!\n) {\n node(id: $stateOfApplicabilityId) {\n __typename\n ... on StateOfApplicability {\n id\n name\n sourceId\n snapshotId\n createdAt\n updatedAt\n canUpdate: permission(action: \"core:state-of-applicability:update\")\n canDelete: permission(action: \"core:state-of-applicability:delete\")\n organization {\n id\n }\n owner {\n id\n fullName\n }\n ...StateOfApplicabilityControlsTabFragment\n }\n id\n }\n}\n\nfragment StateOfApplicabilityControlsTabFragment on StateOfApplicability {\n id\n controlsInfo: controls(first: 0) {\n totalCount\n }\n canCreateStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability-control-mapping:create\")\n canDeleteStateOfApplicabilityControlMapping: permission(action: \"core:state-of-applicability-control-mapping:delete\")\n availableControls {\n controlId\n sectionTitle\n name\n frameworkId\n frameworkName\n organizationId\n stateOfApplicabilityId\n applicability\n justification\n bestPractice\n regulatory\n contractual\n riskAssessment\n }\n}\n" } }; })(); diff --git a/apps/console/src/hooks/graph/RightsRequestGraph.ts b/apps/console/src/hooks/graph/RightsRequestGraph.ts index 52faa518b..969376613 100644 --- a/apps/console/src/hooks/graph/RightsRequestGraph.ts +++ b/apps/console/src/hooks/graph/RightsRequestGraph.ts @@ -54,6 +54,8 @@ export const createRightsRequestMutation = graphql` rightsRequestEdge @prependEdge(connections: $connections) { node { id + canDelete: permission(action: "core:rights-request:delete") + canUpdate: permission(action: "core:rights-request:update") requestType requestState dataSubject diff --git a/apps/console/src/pages/organizations/states-of-applicability/tabs/StateOfApplicabilityControlsTab.tsx b/apps/console/src/pages/organizations/states-of-applicability/tabs/StateOfApplicabilityControlsTab.tsx index 4d126fa40..2d928429b 100644 --- a/apps/console/src/pages/organizations/states-of-applicability/tabs/StateOfApplicabilityControlsTab.tsx +++ b/apps/console/src/pages/organizations/states-of-applicability/tabs/StateOfApplicabilityControlsTab.tsx @@ -37,10 +37,10 @@ export const controlsFragment = graphql` } canCreateStateOfApplicabilityControlMapping: permission( - action: "core:state-of-applicability:control-mapping:create" + action: "core:state-of-applicability-control-mapping:create" ) canDeleteStateOfApplicabilityControlMapping: permission( - action: "core:state-of-applicability:control-mapping:delete" + action: "core:state-of-applicability-control-mapping:delete" ) availableControls {