mirror of
https://github.com/bitwarden/browser
synced 2025-12-19 01:33:33 +00:00
Add-userid-to-encryption-methods (#14844)
* Get userId from response if available This is a small improvement for the Auth team which avoids inspection of the access token, sometimes. * Initialize sdk clients with a userId * return both Cipher and encryptedFor when encrypting a cipher Update cipher api requests to include encryptedFor attribute * Prefer named types with documentation * Update sdk to latest * Fixup types * Fixup tests * Revert getting userId from identity token response --------- Co-authored-by: Shane <smelton@bitwarden.com>
This commit is contained in:
@@ -69,8 +69,9 @@ describe("NotificationBackground", () => {
|
||||
const accountService = mock<AccountService>();
|
||||
const organizationService = mock<OrganizationService>();
|
||||
|
||||
const userId = "testId" as UserId;
|
||||
const activeAccountSubject = new BehaviorSubject<{ id: UserId } & AccountInfo>({
|
||||
id: "testId" as UserId,
|
||||
id: userId,
|
||||
email: "test@example.com",
|
||||
emailVerified: true,
|
||||
name: "Test User",
|
||||
@@ -1141,8 +1142,11 @@ describe("NotificationBackground", () => {
|
||||
convertAddLoginQueueMessageToCipherViewSpy.mockReturnValueOnce(cipherView);
|
||||
editItemSpy.mockResolvedValueOnce(undefined);
|
||||
cipherEncryptSpy.mockResolvedValueOnce({
|
||||
...cipherView,
|
||||
id: "testId",
|
||||
cipher: {
|
||||
...cipherView,
|
||||
id: "testId",
|
||||
},
|
||||
encryptedFor: userId,
|
||||
});
|
||||
|
||||
sendMockExtensionMessage(message, sender);
|
||||
@@ -1188,6 +1192,13 @@ describe("NotificationBackground", () => {
|
||||
folderExistsSpy.mockResolvedValueOnce(true);
|
||||
convertAddLoginQueueMessageToCipherViewSpy.mockReturnValueOnce(cipherView);
|
||||
editItemSpy.mockResolvedValueOnce(undefined);
|
||||
cipherEncryptSpy.mockResolvedValueOnce({
|
||||
cipher: {
|
||||
...cipherView,
|
||||
id: "testId",
|
||||
},
|
||||
encryptedFor: userId,
|
||||
});
|
||||
const errorMessage = "fetch error";
|
||||
createWithServerSpy.mockImplementation(() => {
|
||||
throw new Error(errorMessage);
|
||||
|
||||
@@ -719,9 +719,10 @@ export default class NotificationBackground {
|
||||
return;
|
||||
}
|
||||
|
||||
const cipher = await this.cipherService.encrypt(newCipher, activeUserId);
|
||||
const encrypted = await this.cipherService.encrypt(newCipher, activeUserId);
|
||||
const { cipher } = encrypted;
|
||||
try {
|
||||
await this.cipherService.createWithServer(cipher);
|
||||
await this.cipherService.createWithServer(encrypted);
|
||||
await BrowserApi.tabSendMessageData(tab, "saveCipherAttemptCompleted", {
|
||||
itemName: newCipher?.name && String(newCipher?.name),
|
||||
cipherId: cipher?.id && String(cipher?.id),
|
||||
|
||||
@@ -442,10 +442,10 @@ export class Fido2Component implements OnInit, OnDestroy {
|
||||
);
|
||||
|
||||
this.buildCipher(name, username);
|
||||
const cipher = await this.cipherService.encrypt(this.cipher, activeUserId);
|
||||
const encrypted = await this.cipherService.encrypt(this.cipher, activeUserId);
|
||||
try {
|
||||
await this.cipherService.createWithServer(cipher);
|
||||
this.cipher.id = cipher.id;
|
||||
await this.cipherService.createWithServer(encrypted);
|
||||
this.cipher.id = encrypted.cipher.id;
|
||||
} catch (e) {
|
||||
this.logService.error(e);
|
||||
}
|
||||
|
||||
@@ -353,7 +353,7 @@ describe("VaultPopupAutofillService", () => {
|
||||
});
|
||||
|
||||
it("should add a URI to the cipher and save with the server", async () => {
|
||||
const mockEncryptedCipher = {} as Cipher;
|
||||
const mockEncryptedCipher = { cipher: {} as Cipher, encryptedFor: mockUserId };
|
||||
mockCipherService.encrypt.mockResolvedValue(mockEncryptedCipher);
|
||||
const result = await service.doAutofillAndSave(mockCipher);
|
||||
expect(result).toBe(true);
|
||||
|
||||
Reference in New Issue
Block a user