diff --git a/apps/web/src/app/auth/core/services/login/web-login.service.ts b/apps/web/src/app/auth/core/services/login/web-login.service.ts index f7747a13617..fec57c55ae1 100644 --- a/apps/web/src/app/auth/core/services/login/web-login.service.ts +++ b/apps/web/src/app/auth/core/services/login/web-login.service.ts @@ -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 { - if (!result.requiresEncryptionKeyMigration) { - return false; - } - await this.router.navigate(["migrate-legacy-encryption"]); - return true; - } } diff --git a/libs/auth/src/angular/login/default-login.service.ts b/libs/auth/src/angular/login/default-login.service.ts index 0a8ef12dbf5..08eca726410 100644 --- a/libs/auth/src/angular/login/default-login.service.ts +++ b/libs/auth/src/angular/login/default-login.service.ts @@ -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 { return null; } - - // Legacy accounts used the master key to encrypt data. Migration is required but only performed on web - async handleMigrateEncryptionKey(result: AuthResult): Promise { - if (!result.requiresEncryptionKeyMigration) { - return false; - } - - this.toastService.showToast({ - variant: "error", - title: this.i18nService.t("errorOccured"), - message: this.i18nService.t("encryptionKeyMigrationRequired"), - }); - return true; - } } diff --git a/libs/auth/src/angular/login/login.component.ts b/libs/auth/src/angular/login/login.component.ts index ddd49abafdb..e7dee0c3407 100644 --- a/libs/auth/src/angular/login/login.component.ts +++ b/libs/auth/src/angular/login/login.component.ts @@ -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) { diff --git a/libs/auth/src/angular/login/login.service.ts b/libs/auth/src/angular/login/login.service.ts index 50391486c9a..9c9e59d5ddc 100644 --- a/libs/auth/src/angular/login/login.service.ts +++ b/libs/auth/src/angular/login/login.service.ts @@ -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; - // Web specific getShowPasswordlessFlag: () => boolean; getOrgPolicies: () => Promise;