Fix framework pages permissions handling

Signed-off-by: Émile Ré <nemile.re@gmail.com>
This commit is contained in:
Émile Ré
2025-12-31 17:49:56 +01:00
committed by Bryan Frimin
parent 269f963b48
commit 095254a73d
11 changed files with 663 additions and 188 deletions

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<1c21fa202a0315a19517c79eb93932f3>>
* @generated SignedSource<<7f57391fcdf09c326854f1cc2e0008c2>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -12,6 +12,10 @@ import { ReaderFragment } from 'relay-runtime';
export type ControlStatus = "EXCLUDED" | "INCLUDED";
import { FragmentRefs } from "relay-runtime";
export type FrameworkDetailPageFragment$data = {
readonly canCreateControl: boolean;
readonly canDelete: boolean;
readonly canExport: boolean;
readonly canUpdate: boolean;
readonly controls: {
readonly __id: string;
readonly edges: ReadonlyArray<{
@@ -84,6 +88,58 @@ return {
"name": "darkLogoURL",
"storageKey": null
},
{
"alias": "canExport",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:franework:export"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:franework:export\")"
},
{
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
{
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
},
{
"alias": "canCreateControl",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create\")"
},
{
"alias": null,
"args": null,
@@ -191,6 +247,6 @@ return {
};
})();
(node as any).hash = "e7be231a4f5cbad12945d2ca627cc442";
(node as any).hash = "c88994d5f1872bfe21cfe65e1911b76a";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<af136d6db1a014d6241ad2c9c6dd5f55>>
* @generated SignedSource<<3e99dde71cf9c37ef1ec401a9e76bb6c>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -173,6 +173,32 @@ return {
"kind": "ScalarField",
"name": "darkLogoURL",
"storageKey": null
},
{
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
{
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
}
],
"storageKey": null
@@ -202,12 +228,12 @@ return {
]
},
"params": {
"cacheID": "c66177d87b59d87fdf7cbc9268af431a",
"cacheID": "a26c4f5b9c310055da331176905fc712",
"id": null,
"metadata": {},
"name": "FrameworkFormDialogMutation",
"operationKind": "mutation",
"text": "mutation FrameworkFormDialogMutation(\n $input: CreateFrameworkInput!\n) {\n createFramework(input: $input) {\n frameworkEdge {\n node {\n id\n ...FrameworksPageCardFragment\n }\n }\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n}\n"
"text": "mutation FrameworkFormDialogMutation(\n $input: CreateFrameworkInput!\n) {\n createFramework(input: $input) {\n frameworkEdge {\n node {\n id\n ...FrameworksPageCardFragment\n }\n }\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n canUpdate: permission(action: \"core:framework:update\")\n canDelete: permission(action: \"core:framework:delete\")\n}\n"
}
};
})();

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<ec1b843d1afb3a82c747b8580b528fda>>
* @generated SignedSource<<194328b415c68a01a447d4646639b3c0>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -25,6 +25,20 @@ export type FrameworkGraphControlNodeQuery$data = {
};
}>;
};
readonly canCreateAuditMapping?: boolean;
readonly canCreateDocumentMapping?: boolean;
readonly canCreateMeasureMapping?: boolean;
readonly canCreateObligationMapping?: boolean;
readonly canCreateSnapshotMapping?: boolean;
readonly canCreateStateOfApplicabilityMapping?: boolean;
readonly canDelete?: boolean;
readonly canDeleteAuditMapping?: boolean;
readonly canDeleteDocumentMapping?: boolean;
readonly canDeleteMeasureMapping?: boolean;
readonly canDeleteObligationMapping?: boolean;
readonly canDeleteSnapshotMapping?: boolean;
readonly canDeleteStateOfApplicabilityMapping?: boolean;
readonly canUpdate?: boolean;
readonly description?: string | null | undefined;
readonly documents?: {
readonly __id: string;
@@ -142,20 +156,202 @@ v7 = {
"storageKey": null
},
v8 = {
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:update\")"
},
v9 = {
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:delete\")"
},
v10 = {
"alias": "canCreateMeasureMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create-measure-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create-measure-mapping\")"
},
v11 = {
"alias": "canDeleteMeasureMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:delete-measure-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:delete-measure-mapping\")"
},
v12 = {
"alias": "canCreateDocumentMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create-document-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create-document-mapping\")"
},
v13 = {
"alias": "canDeleteDocumentMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:delete-document-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:delete-document-mapping\")"
},
v14 = {
"alias": "canCreateAuditMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create-audit-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create-audit-mapping\")"
},
v15 = {
"alias": "canDeleteAuditMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:delete-audit-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:delete-audit-mapping\")"
},
v16 = {
"alias": "canCreateSnapshotMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create-snapshot-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create-snapshot-mapping\")"
},
v17 = {
"alias": "canDeleteSnapshotMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:delete-snapshot-mapping"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:delete-snapshot-mapping\")"
},
v18 = {
"alias": "canCreateStateOfApplicabilityMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:state-of-applicability-control-mapping:create"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:state-of-applicability-control-mapping:create\")"
},
v19 = {
"alias": "canDeleteStateOfApplicabilityMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:state-of-applicability-control-mapping:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:state-of-applicability-control-mapping:delete\")"
},
v20 = {
"alias": "canCreateObligationMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:obligation-control-mapping:create"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:obligation-control-mapping:create\")"
},
v21 = {
"alias": "canDeleteObligationMapping",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:obligation-control-mapping:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:obligation-control-mapping:delete\")"
},
v22 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v9 = {
v23 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
},
v10 = {
v24 = {
"alias": null,
"args": null,
"concreteType": "PageInfo",
@@ -180,7 +376,7 @@ v10 = {
],
"storageKey": null
},
v11 = {
v25 = {
"kind": "ClientExtension",
"selections": [
{
@@ -192,25 +388,25 @@ v11 = {
}
]
},
v12 = [
v26 = [
{
"kind": "Literal",
"name": "first",
"value": 100
}
],
v13 = [
v27 = [
(v2/*: any*/),
(v3/*: any*/)
],
v14 = {
v28 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "state",
"storageKey": null
},
v15 = {
v29 = {
"alias": null,
"args": null,
"kind": "ScalarField",
@@ -241,6 +437,20 @@ return {
(v5/*: any*/),
(v6/*: any*/),
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/),
(v13/*: any*/),
(v14/*: any*/),
(v15/*: any*/),
(v16/*: any*/),
(v17/*: any*/),
(v18/*: any*/),
(v19/*: any*/),
(v20/*: any*/),
(v21/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
@@ -276,16 +486,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedStatesOfApplicabilityCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
},
@@ -319,16 +529,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedMeasuresCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
},
@@ -362,16 +572,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedDocumentsCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
},
@@ -405,16 +615,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedAuditsCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
},
@@ -448,16 +658,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedObligationsCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
},
@@ -491,16 +701,16 @@ return {
"kind": "FragmentSpread",
"name": "LinkedSnapshotsCardFragment"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": null
}
@@ -529,7 +739,7 @@ return {
"name": "node",
"plural": false,
"selections": [
(v8/*: any*/),
(v22/*: any*/),
(v2/*: any*/),
{
"kind": "InlineFragment",
@@ -539,6 +749,20 @@ return {
(v5/*: any*/),
(v6/*: any*/),
(v7/*: any*/),
(v8/*: any*/),
(v9/*: any*/),
(v10/*: any*/),
(v11/*: any*/),
(v12/*: any*/),
(v13/*: any*/),
(v14/*: any*/),
(v15/*: any*/),
(v16/*: any*/),
(v17/*: any*/),
(v18/*: any*/),
(v19/*: any*/),
(v20/*: any*/),
(v21/*: any*/),
{
"alias": null,
"args": null,
@@ -548,7 +772,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "StateOfApplicabilityControlConnection",
"kind": "LinkedField",
"name": "stateOfApplicabilityControls",
@@ -592,7 +816,7 @@ return {
"kind": "LinkedField",
"name": "stateOfApplicability",
"plural": false,
"selections": (v13/*: any*/),
"selections": (v27/*: any*/),
"storageKey": null
},
{
@@ -609,22 +833,22 @@ return {
"name": "justification",
"storageKey": null
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "stateOfApplicabilityControls(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_stateOfApplicabilityControls",
@@ -633,7 +857,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "MeasureConnection",
"kind": "LinkedField",
"name": "measures",
@@ -657,23 +881,23 @@ return {
"selections": [
(v2/*: any*/),
(v3/*: any*/),
(v14/*: any*/),
(v8/*: any*/)
(v28/*: any*/),
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "measures(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_measures",
@@ -682,7 +906,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "DocumentConnection",
"kind": "LinkedField",
"name": "documents",
@@ -712,7 +936,7 @@ return {
"name": "title",
"storageKey": null
},
(v15/*: any*/),
(v29/*: any*/),
{
"alias": null,
"args": null,
@@ -761,22 +985,22 @@ return {
],
"storageKey": "versions(first:1)"
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "documents(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_documents",
@@ -785,7 +1009,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "AuditConnection",
"kind": "LinkedField",
"name": "audits",
@@ -809,8 +1033,8 @@ return {
"selections": [
(v2/*: any*/),
(v3/*: any*/),
(v15/*: any*/),
(v14/*: any*/),
(v29/*: any*/),
(v28/*: any*/),
{
"alias": null,
"args": null,
@@ -832,25 +1056,25 @@ return {
"kind": "LinkedField",
"name": "framework",
"plural": false,
"selections": (v13/*: any*/),
"selections": (v27/*: any*/),
"storageKey": null
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "audits(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_audits",
@@ -859,7 +1083,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "ObligationConnection",
"kind": "LinkedField",
"name": "obligations",
@@ -923,22 +1147,22 @@ return {
],
"storageKey": null
},
(v8/*: any*/)
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "obligations(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_obligations",
@@ -947,7 +1171,7 @@ return {
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"concreteType": "SnapshotConnection",
"kind": "LinkedField",
"name": "snapshots",
@@ -979,23 +1203,23 @@ return {
"name": "type",
"storageKey": null
},
(v15/*: any*/),
(v8/*: any*/)
(v29/*: any*/),
(v22/*: any*/)
],
"storageKey": null
},
(v9/*: any*/)
(v23/*: any*/)
],
"storageKey": null
},
(v10/*: any*/),
(v11/*: any*/)
(v24/*: any*/),
(v25/*: any*/)
],
"storageKey": "snapshots(first:100)"
},
{
"alias": null,
"args": (v12/*: any*/),
"args": (v26/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworkGraphControl_snapshots",
@@ -1012,7 +1236,7 @@ return {
]
},
"params": {
"cacheID": "f7773b474bf5f22e9a7075c685839001",
"cacheID": "83f936f5dced0f50c645aa6ef30efedc",
"id": null,
"metadata": {
"connection": [
@@ -1074,11 +1298,11 @@ return {
},
"name": "FrameworkGraphControlNodeQuery",
"operationKind": "query",
"text": "query FrameworkGraphControlNodeQuery(\n $controlId: ID!\n) {\n node(id: $controlId) {\n __typename\n ... on Control {\n id\n name\n sectionTitle\n description\n status\n exclusionJustification\n ...FrameworkControlDialogFragment\n stateOfApplicabilityControls(first: 100) {\n edges {\n node {\n id\n ...LinkedStatesOfApplicabilityCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n measures(first: 100) {\n edges {\n node {\n id\n ...LinkedMeasuresCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n documents(first: 100) {\n edges {\n node {\n id\n ...LinkedDocumentsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n audits(first: 100) {\n edges {\n node {\n id\n ...LinkedAuditsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n obligations(first: 100) {\n edges {\n node {\n id\n ...LinkedObligationsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n snapshots(first: 100) {\n edges {\n node {\n id\n ...LinkedSnapshotsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment FrameworkControlDialogFragment on Control {\n id\n name\n description\n sectionTitle\n status\n exclusionJustification\n bestPractice\n}\n\nfragment LinkedAuditsCardFragment on Audit {\n id\n name\n createdAt\n state\n validFrom\n validUntil\n framework {\n id\n name\n }\n}\n\nfragment LinkedDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n\nfragment LinkedMeasuresCardFragment on Measure {\n id\n name\n state\n}\n\nfragment LinkedObligationsCardFragment on Obligation {\n id\n requirement\n area\n source\n status\n owner {\n fullName\n id\n }\n}\n\nfragment LinkedSnapshotsCardFragment on Snapshot {\n id\n name\n description\n type\n createdAt\n}\n\nfragment LinkedStatesOfApplicabilityCardFragment on StateOfApplicabilityControl {\n id\n stateOfApplicabilityId\n controlId\n stateOfApplicability {\n id\n name\n }\n applicability\n justification\n}\n"
"text": "query FrameworkGraphControlNodeQuery(\n $controlId: ID!\n) {\n node(id: $controlId) {\n __typename\n ... on Control {\n id\n name\n sectionTitle\n description\n status\n exclusionJustification\n canUpdate: permission(action: \"core:control:update\")\n canDelete: permission(action: \"core:control:delete\")\n canCreateMeasureMapping: permission(action: \"core:control:create-measure-mapping\")\n canDeleteMeasureMapping: permission(action: \"core:control:delete-measure-mapping\")\n canCreateDocumentMapping: permission(action: \"core:control:create-document-mapping\")\n canDeleteDocumentMapping: permission(action: \"core:control:delete-document-mapping\")\n canCreateAuditMapping: permission(action: \"core:control:create-audit-mapping\")\n canDeleteAuditMapping: permission(action: \"core:control:delete-audit-mapping\")\n canCreateSnapshotMapping: permission(action: \"core:control:create-snapshot-mapping\")\n canDeleteSnapshotMapping: permission(action: \"core:control:delete-snapshot-mapping\")\n canCreateStateOfApplicabilityMapping: permission(action: \"core:control:state-of-applicability-control-mapping:create\")\n canDeleteStateOfApplicabilityMapping: permission(action: \"core:control:state-of-applicability-control-mapping:delete\")\n canCreateObligationMapping: permission(action: \"core:control:obligation-control-mapping:create\")\n canDeleteObligationMapping: permission(action: \"core:control:obligation-control-mapping:delete\")\n ...FrameworkControlDialogFragment\n stateOfApplicabilityControls(first: 100) {\n edges {\n node {\n id\n ...LinkedStatesOfApplicabilityCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n measures(first: 100) {\n edges {\n node {\n id\n ...LinkedMeasuresCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n documents(first: 100) {\n edges {\n node {\n id\n ...LinkedDocumentsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n audits(first: 100) {\n edges {\n node {\n id\n ...LinkedAuditsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n obligations(first: 100) {\n edges {\n node {\n id\n ...LinkedObligationsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n snapshots(first: 100) {\n edges {\n node {\n id\n ...LinkedSnapshotsCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment FrameworkControlDialogFragment on Control {\n id\n name\n description\n sectionTitle\n status\n exclusionJustification\n bestPractice\n}\n\nfragment LinkedAuditsCardFragment on Audit {\n id\n name\n createdAt\n state\n validFrom\n validUntil\n framework {\n id\n name\n }\n}\n\nfragment LinkedDocumentsCardFragment on Document {\n id\n title\n createdAt\n documentType\n versions(first: 1) {\n edges {\n node {\n id\n status\n }\n }\n }\n}\n\nfragment LinkedMeasuresCardFragment on Measure {\n id\n name\n state\n}\n\nfragment LinkedObligationsCardFragment on Obligation {\n id\n requirement\n area\n source\n status\n owner {\n fullName\n id\n }\n}\n\nfragment LinkedSnapshotsCardFragment on Snapshot {\n id\n name\n description\n type\n createdAt\n}\n\nfragment LinkedStatesOfApplicabilityCardFragment on StateOfApplicabilityControl {\n id\n stateOfApplicabilityId\n controlId\n stateOfApplicability {\n id\n name\n }\n applicability\n justification\n}\n"
}
};
})();
(node as any).hash = "b28838e3c3c4cdd68906247d129799c8";
(node as any).hash = "755f62f220b1a05bf44dd770974691a9";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<7aaf0b32e40fe8c723a28ab9590b62b5>>
* @generated SignedSource<<063d92802621a02aff6b40a9cb2266c2>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -15,10 +15,13 @@ export type FrameworkGraphListQuery$variables = {
};
export type FrameworkGraphListQuery$data = {
readonly organization: {
readonly canCreateFramework?: boolean;
readonly frameworks?: {
readonly __id: string;
readonly edges: ReadonlyArray<{
readonly node: {
readonly canDelete: boolean;
readonly canUpdate: boolean;
readonly id: string;
readonly " $fragmentSpreads": FragmentRefs<"FrameworksPageCardFragment">;
};
@@ -55,20 +58,59 @@ v2 = {
"storageKey": null
},
v3 = {
"alias": "canCreateFramework",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:create"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:create\")"
},
v4 = {
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
v5 = {
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
},
v6 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "__typename",
"storageKey": null
},
v4 = {
v7 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "cursor",
"storageKey": null
},
v5 = {
v8 = {
"alias": null,
"args": null,
"concreteType": "PageInfo",
@@ -93,7 +135,7 @@ v5 = {
],
"storageKey": null
},
v6 = {
v9 = {
"kind": "ClientExtension",
"selections": [
{
@@ -105,7 +147,7 @@ v6 = {
}
]
},
v7 = [
v10 = [
{
"kind": "Literal",
"name": "first",
@@ -131,6 +173,7 @@ return {
"kind": "InlineFragment",
"selections": [
(v2/*: any*/),
(v3/*: any*/),
{
"alias": "frameworks",
"args": null,
@@ -156,21 +199,23 @@ return {
"plural": false,
"selections": [
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
{
"args": null,
"kind": "FragmentSpread",
"name": "FrameworksPageCardFragment"
},
(v3/*: any*/)
(v6/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
(v7/*: any*/)
],
"storageKey": null
},
(v5/*: any*/),
(v6/*: any*/)
(v8/*: any*/),
(v9/*: any*/)
],
"storageKey": null
}
@@ -199,14 +244,15 @@ return {
"name": "node",
"plural": false,
"selections": [
(v3/*: any*/),
(v6/*: any*/),
(v2/*: any*/),
{
"kind": "InlineFragment",
"selections": [
(v3/*: any*/),
{
"alias": null,
"args": (v7/*: any*/),
"args": (v10/*: any*/),
"concreteType": "FrameworkConnection",
"kind": "LinkedField",
"name": "frameworks",
@@ -229,6 +275,8 @@ return {
"plural": false,
"selections": [
(v2/*: any*/),
(v4/*: any*/),
(v5/*: any*/),
{
"alias": null,
"args": null,
@@ -257,22 +305,22 @@ return {
"name": "darkLogoURL",
"storageKey": null
},
(v3/*: any*/)
(v6/*: any*/)
],
"storageKey": null
},
(v4/*: any*/)
(v7/*: any*/)
],
"storageKey": null
},
(v5/*: any*/),
(v6/*: any*/)
(v8/*: any*/),
(v9/*: any*/)
],
"storageKey": "frameworks(first:100)"
},
{
"alias": null,
"args": (v7/*: any*/),
"args": (v10/*: any*/),
"filters": null,
"handle": "connection",
"key": "FrameworksListQuery_frameworks",
@@ -289,7 +337,7 @@ return {
]
},
"params": {
"cacheID": "90e970007a500be89809ac0f2a77bccd",
"cacheID": "2d16147e68885223a69b3597e96d694b",
"id": null,
"metadata": {
"connection": [
@@ -306,11 +354,11 @@ return {
},
"name": "FrameworkGraphListQuery",
"operationKind": "query",
"text": "query FrameworkGraphListQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n frameworks(first: 100) {\n edges {\n node {\n id\n ...FrameworksPageCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n}\n"
"text": "query FrameworkGraphListQuery(\n $organizationId: ID!\n) {\n organization: node(id: $organizationId) {\n __typename\n ... on Organization {\n id\n canCreateFramework: permission(action: \"core:framework:create\")\n frameworks(first: 100) {\n edges {\n node {\n id\n canUpdate: permission(action: \"core:framework:update\")\n canDelete: permission(action: \"core:framework:delete\")\n ...FrameworksPageCardFragment\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n id\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n canUpdate: permission(action: \"core:framework:update\")\n canDelete: permission(action: \"core:framework:delete\")\n}\n"
}
};
})();
(node as any).hash = "4aaead183328e669aba942992db6f89c";
(node as any).hash = "f8d3a38faddf4285b8f495f54f3d988e";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<43528dc19e67fdeca407f5081e6252b9>>
* @generated SignedSource<<bbc7e1cc0c5c3f72d0297ff14a1dff77>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -137,6 +137,58 @@ return {
"name": "darkLogoURL",
"storageKey": null
},
{
"alias": "canExport",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:franework:export"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:franework:export\")"
},
{
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
{
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
},
{
"alias": "canCreateControl",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:control:create"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:control:create\")"
},
{
"alias": null,
"args": null,
@@ -249,12 +301,12 @@ return {
]
},
"params": {
"cacheID": "5af3d5c9f8d466c5d6a78d7bd5da70d1",
"cacheID": "2a82ae6447b93b0fa6b570571694052b",
"id": null,
"metadata": {},
"name": "FrameworkGraphNodeQuery",
"operationKind": "query",
"text": "query FrameworkGraphNodeQuery(\n $frameworkId: ID!\n) {\n node(id: $frameworkId) {\n __typename\n ... on Framework {\n id\n name\n ...FrameworkDetailPageFragment\n }\n id\n }\n}\n\nfragment FrameworkDetailPageFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n organization {\n name\n id\n }\n controls(first: 250, orderBy: {field: SECTION_TITLE, direction: ASC}) {\n edges {\n node {\n id\n sectionTitle\n name\n status\n exclusionJustification\n bestPractice\n }\n }\n }\n}\n"
"text": "query FrameworkGraphNodeQuery(\n $frameworkId: ID!\n) {\n node(id: $frameworkId) {\n __typename\n ... on Framework {\n id\n name\n ...FrameworkDetailPageFragment\n }\n id\n }\n}\n\nfragment FrameworkDetailPageFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n canExport: permission(action: \"core:franework:export\")\n canUpdate: permission(action: \"core:framework:update\")\n canDelete: permission(action: \"core:framework:delete\")\n canCreateControl: permission(action: \"core:control:create\")\n organization {\n name\n id\n }\n controls(first: 250, orderBy: {field: SECTION_TITLE, direction: ASC}) {\n edges {\n node {\n id\n sectionTitle\n name\n status\n exclusionJustification\n bestPractice\n }\n }\n }\n}\n"
}
};
})();

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<412cc494e90709fca575c68f6deef112>>
* @generated SignedSource<<d797330ab78ac421e3c64cebdb2ec975>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -11,6 +11,8 @@
import { ReaderFragment } from 'relay-runtime';
import { FragmentRefs } from "relay-runtime";
export type FrameworksPageCardFragment$data = {
readonly canDelete: boolean;
readonly canUpdate: boolean;
readonly darkLogoURL: string | null | undefined;
readonly description: string | null | undefined;
readonly id: string;
@@ -63,12 +65,38 @@ const node: ReaderFragment = {
"kind": "ScalarField",
"name": "darkLogoURL",
"storageKey": null
},
{
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
{
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
}
],
"type": "Framework",
"abstractKey": null
};
(node as any).hash = "fe86a14971741a77f587ae015ebf0a22";
(node as any).hash = "dfb64192cedec377c8df8a6d8251e815";
export default node;

View File

@@ -1,5 +1,5 @@
/**
* @generated SignedSource<<2256362d89b6b5c2f5c707acb44d283e>>
* @generated SignedSource<<b24323b7c04c927d73fb16ffe3c86532>>
* @lightSyntaxTransform
* @nogrep
*/
@@ -172,6 +172,32 @@ return {
"kind": "ScalarField",
"name": "darkLogoURL",
"storageKey": null
},
{
"alias": "canUpdate",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:update"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:update\")"
},
{
"alias": "canDelete",
"args": [
{
"kind": "Literal",
"name": "action",
"value": "core:framework:delete"
}
],
"kind": "ScalarField",
"name": "permission",
"storageKey": "permission(action:\"core:framework:delete\")"
}
],
"storageKey": null
@@ -201,12 +227,12 @@ return {
]
},
"params": {
"cacheID": "5584472f1e68fac3d766662c6d5dab90",
"cacheID": "6521d91ba0bd6d9d59567cd2a05d0f35",
"id": null,
"metadata": {},
"name": "FrameworksPageImportMutation",
"operationKind": "mutation",
"text": "mutation FrameworksPageImportMutation(\n $input: ImportFrameworkInput!\n) {\n importFramework(input: $input) {\n frameworkEdge {\n node {\n id\n ...FrameworksPageCardFragment\n }\n }\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n}\n"
"text": "mutation FrameworksPageImportMutation(\n $input: ImportFrameworkInput!\n) {\n importFramework(input: $input) {\n frameworkEdge {\n node {\n id\n ...FrameworksPageCardFragment\n }\n }\n }\n}\n\nfragment FrameworksPageCardFragment on Framework {\n id\n name\n description\n lightLogoURL\n darkLogoURL\n canUpdate: permission(action: \"core:framework:update\")\n canDelete: permission(action: \"core:framework:delete\")\n}\n"
}
};
})();