1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-06 00:13:28 +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

@@ -11,9 +11,9 @@ import { KdfType, PBKDF2_ITERATIONS } from "@bitwarden/common/platform/enums";
import {
StateProvider,
ActiveUserState,
KeyDefinition,
PREMIUM_BANNER_DISK_LOCAL,
BANNERS_DISMISSED_DISK,
UserKeyDefinition,
} from "@bitwarden/common/platform/state";
import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction";
@@ -33,19 +33,21 @@ type PremiumBannerReprompt = {
/** Banners that will be re-shown on a new session */
type SessionBanners = Omit<VisibleVaultBanner, VisibleVaultBanner.Premium>;
export const PREMIUM_BANNER_REPROMPT_KEY = new KeyDefinition<PremiumBannerReprompt>(
export const PREMIUM_BANNER_REPROMPT_KEY = new UserKeyDefinition<PremiumBannerReprompt>(
PREMIUM_BANNER_DISK_LOCAL,
"bannerReprompt",
{
deserializer: (bannerReprompt) => bannerReprompt,
clearOn: [], // Do not clear user tutorials
},
);
export const BANNERS_DISMISSED_DISK_KEY = new KeyDefinition<SessionBanners[]>(
export const BANNERS_DISMISSED_DISK_KEY = new UserKeyDefinition<SessionBanners[]>(
BANNERS_DISMISSED_DISK,
"bannersDismissed",
{
deserializer: (bannersDismissed) => bannersDismissed,
clearOn: [], // Do not clear user tutorials
},
);

View File

@@ -3,8 +3,8 @@ import { Observable } from "rxjs";
import {
ActiveUserState,
KeyDefinition,
StateProvider,
UserKeyDefinition,
VAULT_ONBOARDING,
} from "@bitwarden/common/platform/state";
@@ -16,9 +16,14 @@ export type VaultOnboardingTasks = {
installExtension: boolean;
};
const VAULT_ONBOARDING_KEY = new KeyDefinition<VaultOnboardingTasks>(VAULT_ONBOARDING, "tasks", {
deserializer: (jsonData) => jsonData,
});
const VAULT_ONBOARDING_KEY = new UserKeyDefinition<VaultOnboardingTasks>(
VAULT_ONBOARDING,
"tasks",
{
deserializer: (jsonData) => jsonData,
clearOn: [], // do not clear tutorials
},
);
@Injectable()
export class VaultOnboardingService implements VaultOnboardingServiceAbstraction {