diff --git a/libs/common/src/abstractions/api.service.ts b/libs/common/src/abstractions/api.service.ts index 761038c2e4..f7ca1964b7 100644 --- a/libs/common/src/abstractions/api.service.ts +++ b/libs/common/src/abstractions/api.service.ts @@ -91,7 +91,7 @@ import { CipherShareRequest } from "../vault/models/request/cipher-share.request import { CipherRequest } from "../vault/models/request/cipher.request"; import { AttachmentUploadDataResponse } from "../vault/models/response/attachment-upload-data.response"; import { AttachmentResponse } from "../vault/models/response/attachment.response"; -import { CipherResponse } from "../vault/models/response/cipher.response"; +import { CipherMiniResponse, CipherResponse } from "../vault/models/response/cipher.response"; import { OptionalCipherResponse } from "../vault/models/response/optional-cipher.response"; /** @@ -215,7 +215,10 @@ export abstract class ApiService { id: string, request: CipherCollectionsRequest, ): Promise; - abstract putCipherCollectionsAdmin(id: string, request: CipherCollectionsRequest): Promise; + abstract putCipherCollectionsAdmin( + id: string, + request: CipherCollectionsRequest, + ): Promise; abstract postPurgeCiphers( request: SecretVerificationRequest, organizationId?: string, diff --git a/libs/common/src/vault/models/response/cipher.response.ts b/libs/common/src/vault/models/response/cipher.response.ts index bf01e0f08d..28979302eb 100644 --- a/libs/common/src/vault/models/response/cipher.response.ts +++ b/libs/common/src/vault/models/response/cipher.response.ts @@ -14,6 +14,11 @@ import { SshKeyApi } from "../api/ssh-key.api"; import { AttachmentResponse } from "./attachment.response"; import { PasswordHistoryResponse } from "./password-history.response"; +export type CipherMiniResponse = Omit< + CipherResponse, + "edit" | "viewPassword" | "folderId" | "favorite" | "permissions" +>; + export class CipherResponse extends BaseResponse { id: string; organizationId: string; diff --git a/libs/common/src/vault/services/cipher.service.ts b/libs/common/src/vault/services/cipher.service.ts index efe7bc2b89..1e7e5302d4 100644 --- a/libs/common/src/vault/services/cipher.service.ts +++ b/libs/common/src/vault/services/cipher.service.ts @@ -1117,7 +1117,13 @@ export class CipherService implements CipherServiceAbstraction { async saveCollectionsWithServerAdmin(cipher: Cipher): Promise { const request = new CipherCollectionsRequest(cipher.collectionIds); const response = await this.apiService.putCipherCollectionsAdmin(cipher.id, request); - const data = new CipherData(response); + // The response will be incomplete with several properties missing values + // We will assign those properties values so the SDK decryption can complete + const completedResponse = new CipherResponse(response); + completedResponse.edit = true; + completedResponse.viewPassword = true; + completedResponse.favorite = false; + const data = new CipherData(completedResponse); return new Cipher(data); }