From 9be2670d58f82f35825ec8381f6354c6a26cc7d0 Mon Sep 17 00:00:00 2001 From: rr-bw <102181210+rr-bw@users.noreply.github.com> Date: Fri, 16 Jan 2026 12:39:10 -0800 Subject: [PATCH] [PM-27086 TDE Offboarding] minor re-ordering --- ...initial-password.service.implementation.ts | 96 +++++++++---------- .../set-initial-password.component.ts | 6 +- ...et-initial-password.service.abstraction.ts | 2 +- 3 files changed, 51 insertions(+), 53 deletions(-) diff --git a/libs/angular/src/auth/password-management/set-initial-password/default-set-initial-password.service.implementation.ts b/libs/angular/src/auth/password-management/set-initial-password/default-set-initial-password.service.implementation.ts index 21ed6b59d1b..80cb3a943cc 100644 --- a/libs/angular/src/auth/password-management/set-initial-password/default-set-initial-password.service.implementation.ts +++ b/libs/angular/src/auth/password-management/set-initial-password/default-set-initial-password.service.implementation.ts @@ -208,6 +208,54 @@ export class DefaultSetInitialPasswordService implements SetInitialPasswordServi } } + async setInitialPasswordTdeOffboarding( + credentials: SetInitialPasswordTdeOffboardingCredentials, + userId: UserId, + ) { + const { newPassword, salt, kdfConfig, newPasswordHint } = credentials; + + for (const [key, value] of Object.entries(credentials)) { + if (value == null) { + throw new Error(`${key} not found. Could not set password.`); + } + } + + if (userId == null) { + throw new Error("userId not found. Could not set password."); + } + + const userKey = await firstValueFrom(this.keyService.userKey$(userId)); + if (userKey == null) { + throw new Error("userKey not found. Could not set password."); + } + + const authenticationData: MasterPasswordAuthenticationData = + await this.masterPasswordService.makeMasterPasswordAuthenticationData( + newPassword, + kdfConfig, + salt, + ); + + const unlockData: MasterPasswordUnlockData = + await this.masterPasswordService.makeMasterPasswordUnlockData( + newPassword, + kdfConfig, + salt, + userKey, + ); + + const request = UpdateTdeOffboardingPasswordRequest.newConstructorWithHint( + authenticationData, + unlockData, + newPasswordHint, + ); + + await this.masterPasswordApiService.putUpdateTdeOffboardingPassword(request); + + // Clear force set password reason to allow navigation back to vault. + await this.masterPasswordService.setForceSetPasswordReason(ForceSetPasswordReason.None, userId); + } + /** * @deprecated To be removed in PM-28143 */ @@ -367,52 +415,4 @@ export class DefaultSetInitialPasswordService implements SetInitialPasswordServi // Clear force set password reason to allow navigation back to vault. await this.masterPasswordService.setForceSetPasswordReason(ForceSetPasswordReason.None, userId); } - - async setInitialPasswordTdeOffboarding( - credentials: SetInitialPasswordTdeOffboardingCredentials, - userId: UserId, - ) { - const { newPassword, kdfConfig, salt, newPasswordHint } = credentials; - - for (const [key, value] of Object.entries(credentials)) { - if (value == null) { - throw new Error(`${key} not found. Could not set password.`); - } - } - - if (userId == null) { - throw new Error("userId not found. Could not set password."); - } - - const userKey = await firstValueFrom(this.keyService.userKey$(userId)); - if (userKey == null) { - throw new Error("userKey not found. Could not set password."); - } - - const authenticationData: MasterPasswordAuthenticationData = - await this.masterPasswordService.makeMasterPasswordAuthenticationData( - newPassword, - kdfConfig, - salt, - ); - - const unlockData: MasterPasswordUnlockData = - await this.masterPasswordService.makeMasterPasswordUnlockData( - newPassword, - kdfConfig, - salt, - userKey, - ); - - const request = UpdateTdeOffboardingPasswordRequest.newConstructorWithHint( - authenticationData, - unlockData, - newPasswordHint, - ); - - await this.masterPasswordApiService.putUpdateTdeOffboardingPassword(request); - - // Clear force set password reason to allow navigation back to vault. - await this.masterPasswordService.setForceSetPasswordReason(ForceSetPasswordReason.None, userId); - } } diff --git a/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.component.ts b/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.component.ts index 5a32ec45118..30fb5e27855 100644 --- a/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.component.ts +++ b/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.component.ts @@ -343,19 +343,17 @@ export class SetInitialPasswordComponent implements OnInit { private async setInitialPasswordTdeOffboarding(passwordInputResult: PasswordInputResult) { const ctx = "Could not set initial password."; - assertTruthy(passwordInputResult.newPassword, "newPassword", ctx); - assertTruthy(passwordInputResult.kdfConfig, "kdfConfig", ctx); assertTruthy(passwordInputResult.salt, "salt", ctx); + assertNonNullish(passwordInputResult.kdfConfig, "kdfConfig", ctx); assertNonNullish(passwordInputResult.newPasswordHint, "newPasswordHint", ctx); // can have an empty string as a valid value, so check non-nullish - assertTruthy(this.userId, "userId", ctx); try { const credentials: SetInitialPasswordTdeOffboardingCredentials = { newPassword: passwordInputResult.newPassword, - kdfConfig: passwordInputResult.kdfConfig, salt: passwordInputResult.salt, + kdfConfig: passwordInputResult.kdfConfig, newPasswordHint: passwordInputResult.newPasswordHint, }; diff --git a/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.service.abstraction.ts b/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.service.abstraction.ts index 2b3a4daaaad..d791366bc95 100644 --- a/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.service.abstraction.ts +++ b/libs/angular/src/auth/password-management/set-initial-password/set-initial-password.service.abstraction.ts @@ -66,8 +66,8 @@ export interface SetInitialPasswordTdeOffboardingCredentialsOld { export interface SetInitialPasswordTdeOffboardingCredentials { newPassword: string; - kdfConfig: KdfConfig; salt: MasterPasswordSalt; + kdfConfig: KdfConfig; newPasswordHint: string; }