diff --git a/apps/console/src/__generated__/iam/MembershipsPageQuery.graphql.ts b/apps/console/src/__generated__/iam/MembershipsPageQuery.graphql.ts index 24ddc3ff6..c5e7e8bf1 100644 --- a/apps/console/src/__generated__/iam/MembershipsPageQuery.graphql.ts +++ b/apps/console/src/__generated__/iam/MembershipsPageQuery.graphql.ts @@ -1,5 +1,5 @@ /** - * @generated SignedSource<<0e09a0566214f0c5c5ee2919d75bb85a>> + * @generated SignedSource<<63cc59b828971b5b1c0983e2a439f95d>> * @lightSyntaxTransform * @nogrep */ @@ -34,6 +34,13 @@ export type MembershipsPageQuery = { const node: ConcreteRequest = (function(){ var v0 = { + "kind": "Literal", + "name": "filter", + "value": { + "state": "ACTIVE" + } +}, +v1 = { "kind": "Literal", "name": "orderBy", "value": { @@ -41,35 +48,35 @@ var v0 = { "field": "ORGANIZATION_NAME" } }, -v1 = { +v2 = { "alias": null, "args": null, "kind": "ScalarField", "name": "id", "storageKey": null }, -v2 = { +v3 = { "alias": null, "args": null, "kind": "ScalarField", "name": "name", "storageKey": null }, -v3 = { +v4 = { "alias": null, "args": null, "kind": "ScalarField", "name": "__typename", "storageKey": null }, -v4 = { +v5 = { "alias": null, "args": null, "kind": "ScalarField", "name": "cursor", "storageKey": null }, -v5 = { +v6 = { "alias": null, "args": null, "concreteType": "PageInfo", @@ -94,13 +101,14 @@ v5 = { ], "storageKey": null }, -v6 = [ +v7 = [ + (v0/*: any*/), { "kind": "Literal", "name": "first", "value": 1000 }, - (v0/*: any*/) + (v1/*: any*/) ]; return { "fragment": { @@ -124,7 +132,8 @@ return { "field": { "alias": "profiles", "args": [ - (v0/*: any*/) + (v0/*: any*/), + (v1/*: any*/) ], "concreteType": "ProfileConnection", "kind": "LinkedField", @@ -149,7 +158,7 @@ return { "name": "node", "plural": false, "selections": [ - (v1/*: any*/), + (v2/*: any*/), { "args": null, "kind": "FragmentSpread", @@ -165,7 +174,7 @@ return { "name": "organization", "plural": false, "selections": [ - (v2/*: any*/), + (v3/*: any*/), { "args": null, "kind": "FragmentSpread", @@ -176,19 +185,19 @@ return { }, "action": "THROW" }, - (v3/*: any*/) + (v4/*: any*/) ], "storageKey": null }, - (v4/*: any*/) + (v5/*: any*/) ], "storageKey": null }, "action": "THROW" }, - (v5/*: any*/) + (v6/*: any*/) ], - "storageKey": "__MembershipsPage_profiles_connection(orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})" + "storageKey": "__MembershipsPage_profiles_connection(filter:{\"state\":\"ACTIVE\"},orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})" }, "action": "THROW" } @@ -217,7 +226,7 @@ return { "selections": [ { "alias": null, - "args": (v6/*: any*/), + "args": (v7/*: any*/), "concreteType": "ProfileConnection", "kind": "LinkedField", "name": "profiles", @@ -239,7 +248,7 @@ return { "name": "node", "plural": false, "selections": [ - (v1/*: any*/), + (v2/*: any*/), { "alias": null, "args": null, @@ -263,7 +272,7 @@ return { "name": "lastSession", "plural": false, "selections": [ - (v1/*: any*/), + (v2/*: any*/), { "alias": null, "args": null, @@ -274,7 +283,7 @@ return { ], "storageKey": null }, - (v1/*: any*/) + (v2/*: any*/) ], "storageKey": null }, @@ -286,8 +295,8 @@ return { "name": "organization", "plural": false, "selections": [ + (v3/*: any*/), (v2/*: any*/), - (v1/*: any*/), { "alias": null, "args": null, @@ -298,37 +307,38 @@ return { ], "storageKey": null }, - (v3/*: any*/) + (v4/*: any*/) ], "storageKey": null }, - (v4/*: any*/) + (v5/*: any*/) ], "storageKey": null }, - (v5/*: any*/) + (v6/*: any*/) ], - "storageKey": "profiles(first:1000,orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})" + "storageKey": "profiles(filter:{\"state\":\"ACTIVE\"},first:1000,orderBy:{\"direction\":\"ASC\",\"field\":\"ORGANIZATION_NAME\"})" }, { "alias": null, - "args": (v6/*: any*/), + "args": (v7/*: any*/), "filters": [ - "orderBy" + "orderBy", + "filter" ], "handle": "connection", "key": "MembershipsPage_profiles", "kind": "LinkedHandle", "name": "profiles" }, - (v1/*: any*/) + (v2/*: any*/) ], "storageKey": null } ] }, "params": { - "cacheID": "d10df01cc523419b3f998a26d3ecbf7b", + "cacheID": "70c954537c603303bcd55418f6bd73cf", "id": null, "metadata": { "connection": [ @@ -345,11 +355,11 @@ return { }, "name": "MembershipsPageQuery", "operationKind": "query", - "text": "query MembershipsPageQuery {\n viewer {\n profiles(first: 1000, orderBy: {direction: ASC, field: ORGANIZATION_NAME}) {\n edges {\n node {\n id\n ...MembershipCardFragment\n organization {\n name\n ...MembershipCard_organizationFragment\n id\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n id\n }\n}\n\nfragment MembershipCardFragment on Profile {\n state\n membership {\n lastSession {\n id\n expiresAt\n }\n id\n }\n}\n\nfragment MembershipCard_organizationFragment on Organization {\n id\n name\n logoUrl\n}\n" + "text": "query MembershipsPageQuery {\n viewer {\n profiles(first: 1000, orderBy: {direction: ASC, field: ORGANIZATION_NAME}, filter: {state: ACTIVE}) {\n edges {\n node {\n id\n ...MembershipCardFragment\n organization {\n name\n ...MembershipCard_organizationFragment\n id\n }\n __typename\n }\n cursor\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n id\n }\n}\n\nfragment MembershipCardFragment on Profile {\n state\n membership {\n lastSession {\n id\n expiresAt\n }\n id\n }\n}\n\nfragment MembershipCard_organizationFragment on Organization {\n id\n name\n logoUrl\n}\n" } }; })(); -(node as any).hash = "578d6a9573ba32c7b017ec0bae079651"; +(node as any).hash = "c82587c425f688858d4625426153dbdc"; export default node; diff --git a/apps/console/src/pages/iam/memberships/MembershipsPage.tsx b/apps/console/src/pages/iam/memberships/MembershipsPage.tsx index fdd1dee21..24bdd259b 100644 --- a/apps/console/src/pages/iam/memberships/MembershipsPage.tsx +++ b/apps/console/src/pages/iam/memberships/MembershipsPage.tsx @@ -20,6 +20,7 @@ export const membershipsPageQuery = graphql` profiles( first: 1000 orderBy: { direction: ASC, field: ORGANIZATION_NAME } + filter: { state: ACTIVE } ) @connection(key: "MembershipsPage_profiles") @required(action: THROW) { diff --git a/pkg/coredata/membership_profile.go b/pkg/coredata/membership_profile.go index aab2846f7..f2b62eb76 100644 --- a/pkg/coredata/membership_profile.go +++ b/pkg/coredata/membership_profile.go @@ -945,7 +945,7 @@ SET state = @state, full_name = @full_name, kind = @kind, - additional_email_addresses = @additional_email_addresses, + additional_email_addresses = COALESCE(@additional_email_addresses, '{}'::CITEXT[]), position = @position, contract_start_date = @contract_start_date, contract_end_date = @contract_end_date, diff --git a/pkg/server/api/connect/v1/v1_resolver.go b/pkg/server/api/connect/v1/v1_resolver.go index 95a3e8622..bfca65b52 100644 --- a/pkg/server/api/connect/v1/v1_resolver.go +++ b/pkg/server/api/connect/v1/v1_resolver.go @@ -1388,7 +1388,7 @@ func (r *profileResolver) Identity(ctx context.Context, obj *types.Profile) (*ty // Organization is the resolver for the organization field. func (r *profileResolver) Organization(ctx context.Context, obj *types.Profile) (*types.Organization, error) { - if err := r.authorize(ctx, obj.ID, iam.ActionOrganizationGet, authz.WithSkipAssumptionCheck()); err != nil { + if err := r.authorize(ctx, obj.Organization.ID, iam.ActionOrganizationGet, authz.WithSkipAssumptionCheck()); err != nil { return nil, err }