From 5c540a86f428594c80ddd5d1752146a090914a70 Mon Sep 17 00:00:00 2001 From: Brandon Treston Date: Thu, 14 Nov 2024 17:17:40 -0500 Subject: [PATCH] [PM-13829] Add organizationId to isAdmin check, refactor isAdmin to getter (#11997) * Add organizationId to isAdmin check, refactor isAdmin to getter for restore and delete * add comment --- .../vault/components/add-edit.component.ts | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/libs/angular/src/vault/components/add-edit.component.ts b/libs/angular/src/vault/components/add-edit.component.ts index 1ca2df6b7333..3747236d51dd 100644 --- a/libs/angular/src/vault/components/add-edit.component.ts +++ b/libs/angular/src/vault/components/add-edit.component.ts @@ -713,19 +713,26 @@ export class AddEditComponent implements OnInit, OnDestroy { } protected deleteCipher() { - // cipher.collectionIds may be null or an empty array. Either is a valid indication that the item is unassigned. - const asAdmin = - this.organization?.canEditAllCiphers || - !this.cipher.collectionIds || - this.cipher.collectionIds.length === 0; return this.cipher.isDeleted - ? this.cipherService.deleteWithServer(this.cipher.id, asAdmin) - : this.cipherService.softDeleteWithServer(this.cipher.id, asAdmin); + ? this.cipherService.deleteWithServer(this.cipher.id, this.asAdmin) + : this.cipherService.softDeleteWithServer(this.cipher.id, this.asAdmin); } protected restoreCipher() { - const asAdmin = this.organization?.canEditAllCiphers; - return this.cipherService.restoreWithServer(this.cipher.id, asAdmin); + return this.cipherService.restoreWithServer(this.cipher.id, this.asAdmin); + } + + /** + * Determines if a cipher must be deleted as an admin by belonging to an organization and being unassigned to a collection. + */ + get asAdmin(): boolean { + return ( + this.cipher.organizationId !== null && + this.cipher.organizationId.length > 0 && + (this.organization?.canEditAllCiphers || + !this.cipher.collectionIds || + this.cipher.collectionIds.length === 0) + ); } get defaultOwnerId(): string | null {