1
0
mirror of https://github.com/bitwarden/browser synced 2026-01-09 03:53:53 +00:00

Use User Key Definitions for user-scoped data (#9348)

This commit is contained in:
Matt Gibson
2024-05-27 08:12:28 -04:00
committed by GitHub
parent c0bb7b9edf
commit c61ba41b97
8 changed files with 59 additions and 34 deletions

View File

@@ -4,7 +4,7 @@ import {
CIPHERS_DISK,
CIPHERS_DISK_LOCAL,
CIPHERS_MEMORY,
KeyDefinition,
UserKeyDefinition,
} from "../../../platform/state";
import { CipherId } from "../../../types/guid";
import { CipherData } from "../../models/data/cipher.data";
@@ -12,27 +12,30 @@ import { LocalData } from "../../models/data/local.data";
import { CipherView } from "../../models/view/cipher.view";
import { AddEditCipherInfo } from "../../types/add-edit-cipher-info";
export const ENCRYPTED_CIPHERS = KeyDefinition.record<CipherData>(CIPHERS_DISK, "ciphers", {
export const ENCRYPTED_CIPHERS = UserKeyDefinition.record<CipherData>(CIPHERS_DISK, "ciphers", {
deserializer: (obj: Jsonify<CipherData>) => CipherData.fromJSON(obj),
clearOn: ["logout"],
});
export const DECRYPTED_CIPHERS = KeyDefinition.record<CipherView>(
export const DECRYPTED_CIPHERS = UserKeyDefinition.record<CipherView>(
CIPHERS_MEMORY,
"decryptedCiphers",
{
deserializer: (cipher: Jsonify<CipherView>) => CipherView.fromJSON(cipher),
clearOn: ["logout", "lock"],
},
);
export const LOCAL_DATA_KEY = new KeyDefinition<Record<CipherId, LocalData>>(
export const LOCAL_DATA_KEY = new UserKeyDefinition<Record<CipherId, LocalData>>(
CIPHERS_DISK_LOCAL,
"localData",
{
deserializer: (localData) => localData,
clearOn: ["logout"],
},
);
export const ADD_EDIT_CIPHER_INFO_KEY = new KeyDefinition<AddEditCipherInfo>(
export const ADD_EDIT_CIPHER_INFO_KEY = new UserKeyDefinition<AddEditCipherInfo>(
CIPHERS_MEMORY,
"addEditCipherInfo",
{
@@ -48,5 +51,6 @@ export const ADD_EDIT_CIPHER_INFO_KEY = new KeyDefinition<AddEditCipherInfo>(
return { cipher, collectionIds: addEditCipherInfo.collectionIds };
},
clearOn: ["logout", "lock"],
},
);

View File

@@ -1,9 +1,10 @@
import { KeyDefinition, VAULT_FILTER_DISK } from "../../../platform/state";
import { UserKeyDefinition, VAULT_FILTER_DISK } from "../../../platform/state";
export const COLLAPSED_GROUPINGS = KeyDefinition.array<string>(
export const COLLAPSED_GROUPINGS = UserKeyDefinition.array<string>(
VAULT_FILTER_DISK,
"collapsedGroupings",
{
deserializer: (obj) => obj,
clearOn: ["logout", "lock"],
},
);

View File

@@ -1,15 +1,20 @@
import { Jsonify } from "type-fest";
import { CryptoService } from "../../../platform/abstractions/crypto.service";
import { DeriveDefinition, FOLDER_DISK, KeyDefinition } from "../../../platform/state";
import { DeriveDefinition, FOLDER_DISK, UserKeyDefinition } from "../../../platform/state";
import { FolderService } from "../../abstractions/folder/folder.service.abstraction";
import { FolderData } from "../../models/data/folder.data";
import { Folder } from "../../models/domain/folder";
import { FolderView } from "../../models/view/folder.view";
export const FOLDER_ENCRYPTED_FOLDERS = KeyDefinition.record<FolderData>(FOLDER_DISK, "folders", {
deserializer: (obj: Jsonify<FolderData>) => FolderData.fromJSON(obj),
});
export const FOLDER_ENCRYPTED_FOLDERS = UserKeyDefinition.record<FolderData>(
FOLDER_DISK,
"folders",
{
deserializer: (obj: Jsonify<FolderData>) => FolderData.fromJSON(obj),
clearOn: ["logout"],
},
);
export const FOLDER_DECRYPTED_FOLDERS = DeriveDefinition.from<
Record<string, FolderData>,

View File

@@ -1,4 +1,4 @@
import { VAULT_SETTINGS_DISK, KeyDefinition } from "../../../platform/state";
import { VAULT_SETTINGS_DISK, KeyDefinition, UserKeyDefinition } from "../../../platform/state";
export const USER_ENABLE_PASSKEYS = new KeyDefinition<boolean>(
VAULT_SETTINGS_DISK,
@@ -8,16 +8,20 @@ export const USER_ENABLE_PASSKEYS = new KeyDefinition<boolean>(
},
);
export const SHOW_CARDS_CURRENT_TAB = new KeyDefinition<boolean>(
export const SHOW_CARDS_CURRENT_TAB = new UserKeyDefinition<boolean>(
VAULT_SETTINGS_DISK,
"showCardsCurrentTab",
{
deserializer: (obj) => obj,
clearOn: [], // do not clear user settings
},
);
export const SHOW_IDENTITIES_CURRENT_TAB = new KeyDefinition<boolean>(
export const SHOW_IDENTITIES_CURRENT_TAB = new UserKeyDefinition<boolean>(
VAULT_SETTINGS_DISK,
"showIdentitiesCurrentTab",
{ deserializer: (obj) => obj },
{
deserializer: (obj) => obj,
clearOn: [], // do not clear user settings
},
);