diff --git a/apps/console/src/hooks/graph/TrustCenterAccessGraph.ts b/apps/console/src/hooks/graph/TrustCenterAccessGraph.ts index a5274f9b3..be93e596a 100644 --- a/apps/console/src/hooks/graph/TrustCenterAccessGraph.ts +++ b/apps/console/src/hooks/graph/TrustCenterAccessGraph.ts @@ -112,6 +112,7 @@ export const loadTrustCenterAccessDocumentAccessesQuery = graphql` node { active requested + status document { id title diff --git a/apps/console/src/hooks/graph/__generated__/TrustCenterAccessGraphLoadDocumentAccessesQuery.graphql.ts b/apps/console/src/hooks/graph/__generated__/TrustCenterAccessGraphLoadDocumentAccessesQuery.graphql.ts index b44e82334..89741a473 100644 --- a/apps/console/src/hooks/graph/__generated__/TrustCenterAccessGraphLoadDocumentAccessesQuery.graphql.ts +++ b/apps/console/src/hooks/graph/__generated__/TrustCenterAccessGraphLoadDocumentAccessesQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<> + * @generated SignedSource<> * @lightSyntaxTransform * @nogrep */ @@ -10,6 +10,7 @@ import { ConcreteRequest } from 'relay-runtime'; export type DocumentType = "ISMS" | "OTHER" | "POLICY" | "PROCEDURE"; +export type TrustCenterDocumentAccessStatus = "GRANTED" | "REJECTED" | "REQUESTED" | "REVOKED"; export type TrustCenterAccessGraphLoadDocumentAccessesQuery$variables = { accessId: string; }; @@ -35,6 +36,7 @@ export type TrustCenterAccessGraphLoadDocumentAccessesQuery$data = { readonly id: string; } | null | undefined; readonly requested: boolean; + readonly status: TrustCenterDocumentAccessStatus; readonly trustCenterFile: { readonly category: string; readonly id: string; @@ -103,6 +105,13 @@ v5 = { "storageKey": null }, v6 = { + "alias": null, + "args": null, + "kind": "ScalarField", + "name": "status", + "storageKey": null +}, +v7 = { "alias": null, "args": null, "concreteType": "Document", @@ -128,21 +137,21 @@ v6 = { ], "storageKey": null }, -v7 = { +v8 = { "alias": null, "args": null, "kind": "ScalarField", "name": "filename", "storageKey": null }, -v8 = { +v9 = { "alias": null, "args": null, "kind": "ScalarField", "name": "name", "storageKey": null }, -v9 = { +v10 = { "alias": null, "args": null, "concreteType": "TrustCenterFile", @@ -151,7 +160,7 @@ v9 = { "plural": false, "selections": [ (v2/*: any*/), - (v8/*: any*/), + (v9/*: any*/), { "alias": null, "args": null, @@ -208,6 +217,7 @@ return { (v4/*: any*/), (v5/*: any*/), (v6/*: any*/), + (v7/*: any*/), { "alias": null, "args": null, @@ -217,7 +227,7 @@ return { "plural": false, "selections": [ (v2/*: any*/), - (v7/*: any*/), + (v8/*: any*/), { "alias": null, "args": null, @@ -235,7 +245,7 @@ return { "name": "framework", "plural": false, "selections": [ - (v8/*: any*/) + (v9/*: any*/) ], "storageKey": null } @@ -245,7 +255,7 @@ return { ], "storageKey": null }, - (v9/*: any*/) + (v10/*: any*/) ], "storageKey": null } @@ -318,6 +328,7 @@ return { (v4/*: any*/), (v5/*: any*/), (v6/*: any*/), + (v7/*: any*/), { "alias": null, "args": null, @@ -327,7 +338,7 @@ return { "plural": false, "selections": [ (v2/*: any*/), - (v7/*: any*/), + (v8/*: any*/), { "alias": null, "args": null, @@ -345,7 +356,7 @@ return { "name": "framework", "plural": false, "selections": [ - (v8/*: any*/), + (v9/*: any*/), (v2/*: any*/) ], "storageKey": null @@ -356,7 +367,7 @@ return { ], "storageKey": null }, - (v9/*: any*/) + (v10/*: any*/) ], "storageKey": null } @@ -376,16 +387,16 @@ return { ] }, "params": { - "cacheID": "50de5f19f1c13ee4d4a0b125231b989f", + "cacheID": "a764b27e48509dfdf4a7a03c5f00ea59", "id": null, "metadata": {}, "name": "TrustCenterAccessGraphLoadDocumentAccessesQuery", "operationKind": "query", - "text": "query TrustCenterAccessGraphLoadDocumentAccessesQuery(\n $accessId: ID!\n) {\n node(id: $accessId) {\n __typename\n ... on TrustCenterAccess {\n id\n availableDocumentAccesses(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n active\n requested\n document {\n id\n title\n documentType\n }\n report {\n id\n filename\n audit {\n id\n framework {\n name\n id\n }\n }\n }\n trustCenterFile {\n id\n name\n category\n }\n }\n }\n }\n }\n id\n }\n}\n" + "text": "query TrustCenterAccessGraphLoadDocumentAccessesQuery(\n $accessId: ID!\n) {\n node(id: $accessId) {\n __typename\n ... on TrustCenterAccess {\n id\n availableDocumentAccesses(first: 100, orderBy: {field: CREATED_AT, direction: DESC}) {\n edges {\n node {\n active\n requested\n status\n document {\n id\n title\n documentType\n }\n report {\n id\n filename\n audit {\n id\n framework {\n name\n id\n }\n }\n }\n trustCenterFile {\n id\n name\n category\n }\n }\n }\n }\n }\n id\n }\n}\n" } }; })(); -(node as any).hash = "64c69558e335d4cecb14192d8c5b66b8"; +(node as any).hash = "f40dbb607d0bd5adb85b0a8377b96b32"; export default node; diff --git a/apps/console/src/pages/organizations/trustCenter/TrustCenterAccessTab.tsx b/apps/console/src/pages/organizations/trustCenter/TrustCenterAccessTab.tsx index 9f94b4d4f..0f53c777d 100644 --- a/apps/console/src/pages/organizations/trustCenter/TrustCenterAccessTab.tsx +++ b/apps/console/src/pages/organizations/trustCenter/TrustCenterAccessTab.tsx @@ -82,6 +82,7 @@ type ContextType = { type DocumentAccessInfo = { active: boolean; + status: string; requested: boolean; document?: { id: string; @@ -185,7 +186,7 @@ export default function TrustCenterAccessTab() { setIsLoadingDocumentAccesses(false); }, []); - const formattedDocumentAccesses = editingDocumentAccesses + const formattedDocumentAccesses: NonNullable>[] = editingDocumentAccesses ?.map((docAccess) => getDocumentAccessInfo(docAccess, __)) ?.filter((info) => info !== null) ?? []; @@ -210,6 +211,7 @@ export default function TrustCenterAccessTab() { id: docAccess.document?.id, requested: docAccess.requested, active: docAccess.active, + status: docAccess.status, }; } if (docAccess.report) { @@ -221,6 +223,7 @@ export default function TrustCenterAccessTab() { id: docAccess.report?.id, requested: docAccess.requested, active: docAccess.active, + status: docAccess.status, }; } if (docAccess.trustCenterFile) { @@ -232,10 +235,11 @@ export default function TrustCenterAccessTab() { id: docAccess.trustCenterFile?.id, requested: docAccess.requested, active: docAccess.active, + status: docAccess.status, }; } - return null; + throw new Error("Unknown trust center access document type"); } type AccessType = { @@ -638,17 +642,15 @@ export default function TrustCenterAccessTab() { {__("Name")} {__("Type")} {__("Category")} - -
- {__("Access")} -
+ {__("Access")} + {formattedDocumentAccesses.map((info) => { - const { variant, name, type, category, id, requested } = info; + const { variant, name, type, category, id, status } = info; return ( @@ -668,20 +670,13 @@ export default function TrustCenterAccessTab() { - {requested && ( - - {__("Requested")} - - )} + + {status} +
- { - if (id) handleToggleDocumentAccess(id, active); - }} - /> +
diff --git a/pkg/server/api/console/v1/schema/schema.go b/pkg/server/api/console/v1/schema/schema.go index 87fbe697b..d068a786d 100644 --- a/pkg/server/api/console/v1/schema/schema.go +++ b/pkg/server/api/console/v1/schema/schema.go @@ -2224,8 +2224,6 @@ type TrustCenterAccessResolver interface { AvailableDocumentAccesses(ctx context.Context, obj *types.TrustCenterAccess, first *int, after *page.CursorKey, last *int, before *page.CursorKey, orderBy *types.OrderBy[coredata.TrustCenterDocumentAccessOrderField]) (*types.TrustCenterDocumentAccessConnection, error) } type TrustCenterDocumentAccessResolver interface { - Status(ctx context.Context, obj *types.TrustCenterDocumentAccess) (coredata.TrustCenterDocumentAccessStatus, error) - Document(ctx context.Context, obj *types.TrustCenterDocumentAccess) (*types.Document, error) Report(ctx context.Context, obj *types.TrustCenterDocumentAccess) (*types.Report, error) TrustCenterFile(ctx context.Context, obj *types.TrustCenterDocumentAccess) (*types.TrustCenterFile, error) @@ -47161,7 +47159,7 @@ func (ec *executionContext) _TrustCenterDocumentAccess_status(ctx context.Contex field, ec.fieldContext_TrustCenterDocumentAccess_status, func(ctx context.Context) (any, error) { - return ec.resolvers.TrustCenterDocumentAccess().Status(ctx, obj) + return obj.Status, nil }, nil, ec.marshalNTrustCenterDocumentAccessStatus2goᚗproboᚗincᚋproboᚋpkgᚋcoredataᚐTrustCenterDocumentAccessStatus, @@ -47174,8 +47172,8 @@ func (ec *executionContext) fieldContext_TrustCenterDocumentAccess_status(_ cont fc = &graphql.FieldContext{ Object: "TrustCenterDocumentAccess", Field: field, - IsMethod: true, - IsResolver: true, + IsMethod: false, + IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { return nil, errors.New("field of type TrustCenterDocumentAccessStatus does not have child fields") }, @@ -78827,41 +78825,10 @@ func (ec *executionContext) _TrustCenterDocumentAccess(ctx context.Context, sel atomic.AddUint32(&out.Invalids, 1) } case "status": - field := field - - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._TrustCenterDocumentAccess_status(ctx, field, obj) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } - return res + out.Values[i] = ec._TrustCenterDocumentAccess_status(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue - } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) case "requested": out.Values[i] = ec._TrustCenterDocumentAccess_requested(ctx, field, obj) if out.Values[i] == graphql.Null { diff --git a/pkg/server/api/console/v1/types/trust_center_document_access.go b/pkg/server/api/console/v1/types/trust_center_document_access.go index 47b70c404..7cc31b5fb 100644 --- a/pkg/server/api/console/v1/types/trust_center_document_access.go +++ b/pkg/server/api/console/v1/types/trust_center_document_access.go @@ -35,16 +35,17 @@ type ( } TrustCenterDocumentAccess struct { - ID gid.GID `json:"id"` - OrganizationID gid.GID `json:"-"` - Active bool `json:"active"` - Requested bool `json:"requested"` - CreatedAt time.Time `json:"createdAt"` - UpdatedAt time.Time `json:"updatedAt"` - TrustCenterAccess *TrustCenterAccess `json:"trustCenterAccess"` - Document *Document `json:"document,omitempty"` - Report *Report `json:"report,omitempty"` - TrustCenterFile *TrustCenterFile `json:"trustCenterFile,omitempty"` + ID gid.GID `json:"id"` + OrganizationID gid.GID `json:"-"` + Active bool `json:"active"` + Status coredata.TrustCenterDocumentAccessStatus `json:"status"` + Requested bool `json:"requested"` + CreatedAt time.Time `json:"createdAt"` + UpdatedAt time.Time `json:"updatedAt"` + TrustCenterAccess *TrustCenterAccess `json:"trustCenterAccess"` + Document *Document `json:"document,omitempty"` + Report *Report `json:"report,omitempty"` + TrustCenterFile *TrustCenterFile `json:"trustCenterFile,omitempty"` // Internal fields used by resolvers TrustCenterAccessID gid.GID `json:"-"` @@ -59,6 +60,7 @@ func NewTrustCenterDocumentAccess(tcda *coredata.TrustCenterDocumentAccess) *Tru ID: tcda.ID, OrganizationID: tcda.OrganizationID, Active: tcda.Active, + Status: tcda.Status, Requested: tcda.Requested, CreatedAt: tcda.CreatedAt, UpdatedAt: tcda.UpdatedAt, diff --git a/pkg/server/api/console/v1/v1_resolver.go b/pkg/server/api/console/v1/v1_resolver.go index 2760315c9..2ba60db71 100644 --- a/pkg/server/api/console/v1/v1_resolver.go +++ b/pkg/server/api/console/v1/v1_resolver.go @@ -6492,11 +6492,6 @@ func (r *trustCenterAccessResolver) AvailableDocumentAccesses(ctx context.Contex return types.NewTrustCenterDocumentAccessConnection(result, obj, obj.ID), nil } -// Status is the resolver for the status field. -func (r *trustCenterDocumentAccessResolver) Status(ctx context.Context, obj *types.TrustCenterDocumentAccess) (coredata.TrustCenterDocumentAccessStatus, error) { - panic(fmt.Errorf("not implemented: Status - status")) -} - // Document is the resolver for the document field. func (r *trustCenterDocumentAccessResolver) Document(ctx context.Context, obj *types.TrustCenterDocumentAccess) (*types.Document, error) { r.MustBeAuthorized(ctx, obj.ID, authz.ActionGet)