From 2e8d1a206150cb911f020f1584cdd59bda516e14 Mon Sep 17 00:00:00 2001 From: Shane Melton Date: Fri, 12 Apr 2024 08:51:20 -0700 Subject: [PATCH] [AC-2431] New collection dialog bug (#8648) * [AC-2431] Add null check for convertToPermission helper * [AC-2431] Only attempt to convertToPermission if collectionId has a value --- .../access-selector/access-selector.models.ts | 7 ++++++- .../collection-dialog.component.ts | 16 +++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/apps/web/src/app/admin-console/organizations/shared/components/access-selector/access-selector.models.ts b/apps/web/src/app/admin-console/organizations/shared/components/access-selector/access-selector.models.ts index 8fbca22bc5..be313c2574 100644 --- a/apps/web/src/app/admin-console/organizations/shared/components/access-selector/access-selector.models.ts +++ b/apps/web/src/app/admin-console/organizations/shared/components/access-selector/access-selector.models.ts @@ -101,7 +101,12 @@ export const getPermissionList = (flexibleCollectionsEnabled: boolean): Permissi * for the dropdown in the AccessSelectorComponent * @param value */ -export const convertToPermission = (value: CollectionAccessSelectionView) => { +export const convertToPermission = ( + value: CollectionAccessSelectionView | undefined, +): CollectionPermission | undefined => { + if (value == null) { + return undefined; + } if (value.manage) { return CollectionPermission.Manage; } else if (value.readOnly) { diff --git a/apps/web/src/app/vault/components/collection-dialog/collection-dialog.component.ts b/apps/web/src/app/vault/components/collection-dialog/collection-dialog.component.ts index 64150245cb..8e0d610c93 100644 --- a/apps/web/src/app/vault/components/collection-dialog/collection-dialog.component.ts +++ b/apps/web/src/app/vault/components/collection-dialog/collection-dialog.component.ts @@ -29,9 +29,9 @@ import { CollectionView } from "@bitwarden/common/vault/models/view/collection.v import { BitValidators, DialogService } from "@bitwarden/components"; import { + CollectionAccessSelectionView, GroupService, GroupView, - CollectionAccessSelectionView, } from "../../../admin-console/organizations/core"; import { PermissionMode } from "../../../admin-console/organizations/shared/components/access-selector/access-selector.component"; import { @@ -432,7 +432,10 @@ function mapGroupToAccessItemView(group: GroupView, collectionId: string): Acces labelName: group.name, accessAllItems: group.accessAll, readonly: group.accessAll, - readonlyPermission: convertToPermission(group.collections.find((gc) => gc.id == collectionId)), + readonlyPermission: + collectionId != null + ? convertToPermission(group.collections.find((gc) => gc.id == collectionId)) + : undefined, }; } @@ -456,9 +459,12 @@ function mapUserToAccessItemView( status: user.status, accessAllItems: user.accessAll, readonly: user.accessAll, - readonlyPermission: convertToPermission( - new CollectionAccessSelectionView(user.collections.find((uc) => uc.id == collectionId)), - ), + readonlyPermission: + collectionId != null + ? convertToPermission( + new CollectionAccessSelectionView(user.collections.find((uc) => uc.id == collectionId)), + ) + : undefined, }; }