1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 16:23:44 +00:00

refactor handleMigrateEncryptionKey()

This commit is contained in:
rr-bw
2024-09-10 12:37:22 -07:00
parent b997b6024e
commit 40e2cb5747
4 changed files with 12 additions and 29 deletions

View File

@@ -6,7 +6,6 @@ import { DefaultLoginService, LoginService, PasswordPolicies } from "@bitwarden/
import { PolicyApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy-api.service.abstraction";
import { InternalPolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction";
import { Policy } from "@bitwarden/common/admin-console/models/domain/policy";
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
import { LogService } from "@bitwarden/common/platform/abstractions/log.service";
import { flagEnabled } from "../../../../../utils/flags";
@@ -69,12 +68,4 @@ export class WebLoginService extends DefaultLoginService implements LoginService
};
}
}
override async handleMigrateEncryptionKey(result: AuthResult): Promise<boolean> {
if (!result.requiresEncryptionKeyMigration) {
return false;
}
await this.router.navigate(["migrate-legacy-encryption"]);
return true;
}
}

View File

@@ -1,6 +1,5 @@
import { UrlTree } from "@angular/router";
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service";
import { ToastService } from "@bitwarden/components";
@@ -23,18 +22,4 @@ export class DefaultLoginService implements LoginService {
async getOrgPolicies(): Promise<PasswordPolicies | null> {
return null;
}
// Legacy accounts used the master key to encrypt data. Migration is required but only performed on web
async handleMigrateEncryptionKey(result: AuthResult): Promise<boolean> {
if (!result.requiresEncryptionKeyMigration) {
return false;
}
this.toastService.showToast({
variant: "error",
title: this.i18nService.t("errorOccured"),
message: this.i18nService.t("encryptionKeyMigrationRequired"),
});
return true;
}
}

View File

@@ -169,8 +169,18 @@ export class LoginComponentV2 implements OnInit, OnDestroy {
if (this.handleCaptchaRequired(authResult)) {
return;
} else if (await this.loginService.handleMigrateEncryptionKey(authResult)) {
return;
} else if (authResult.requiresEncryptionKeyMigration) {
/* Legacy accounts used the master key to encrypt data.
Migration is required but only performed on Web. */
if (this.clientType === ClientType.Web) {
await this.router.navigate(["migrate-legacy-encryption"]);
} else {
this.toastService.showToast({
variant: "error",
title: this.i18nService.t("errorOccured"),
message: this.i18nService.t("encryptionKeyMigrationRequired"),
});
}
} else if (authResult.requiresTwoFactor) {
await this.router.navigate(["2fa"]);
} else if (authResult.forcePasswordReset != ForceSetPasswordReason.None) {

View File

@@ -2,7 +2,6 @@ import { UrlTree } from "@angular/router";
import { MasterPasswordPolicyOptions } from "@bitwarden/common/admin-console/models/domain/master-password-policy-options";
import { Policy } from "@bitwarden/common/admin-console/models/domain/policy";
import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result";
export interface PasswordPolicies {
policies: Policy[];
@@ -11,8 +10,6 @@ export interface PasswordPolicies {
}
export abstract class LoginService {
handleMigrateEncryptionKey: (result: AuthResult) => Promise<boolean>;
// Web specific
getShowPasswordlessFlag: () => boolean;
getOrgPolicies: () => Promise<PasswordPolicies | null>;