From 0eda4185911090313146842038f871c7911640a2 Mon Sep 17 00:00:00 2001 From: cyprain-okeke <108260115+cyprain-okeke@users.noreply.github.com> Date: Fri, 5 Aug 2022 16:01:47 +0100 Subject: [PATCH] [PS-1066] Browser and Desktop - SSO User does not see Update Master Password screen after Owner does a Admin Password Reset (#3207) * added a refresh token to avoid the time out issue * validating for forcePasswordReset for web extension * checking for forcePasswordReset to know the successRoute to nagivate to * changes after running prettier * removing the old implementation and making changes for getForcePasswordReset * making chnages to lock.component in desktop project for forcePasswordReset Co-authored-by: dynwee --- apps/browser/src/popup/accounts/lock.component.ts | 13 +++++++++++-- apps/desktop/src/app/accounts/lock.component.ts | 11 ++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/apps/browser/src/popup/accounts/lock.component.ts b/apps/browser/src/popup/accounts/lock.component.ts index 5b05207872ef..15e15de297a3 100644 --- a/apps/browser/src/popup/accounts/lock.component.ts +++ b/apps/browser/src/popup/accounts/lock.component.ts @@ -12,6 +12,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; +import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service"; import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus"; @@ -26,6 +27,8 @@ export class LockComponent extends BaseLockComponent { biometricError: string; pendingBiometric = false; + authenicatedUrl = "/tabs/current"; + unAuthenicatedUrl = "/update-temp-password"; constructor( router: Router, @@ -40,7 +43,8 @@ export class LockComponent extends BaseLockComponent { logService: LogService, keyConnectorService: KeyConnectorService, ngZone: NgZone, - private authService: AuthService + private authService: AuthService, + private syncService: SyncService ) { super( router, @@ -56,12 +60,17 @@ export class LockComponent extends BaseLockComponent { keyConnectorService, ngZone ); - this.successRoute = "/tabs/current"; + this.isInitialLockScreen = (window as any).previousPopupUrl == null; } async ngOnInit() { await super.ngOnInit(); + await this.syncService.fullSync(true); + + const forcePasswordReset = await this.stateService.getForcePasswordReset(); + this.successRoute = forcePasswordReset === true ? this.unAuthenicatedUrl : this.authenicatedUrl; + const disableAutoBiometricsPrompt = (await this.stateService.getDisableAutoBiometricsPrompt()) ?? true; diff --git a/apps/desktop/src/app/accounts/lock.component.ts b/apps/desktop/src/app/accounts/lock.component.ts index 824dd00a1be1..c7224113f98b 100644 --- a/apps/desktop/src/app/accounts/lock.component.ts +++ b/apps/desktop/src/app/accounts/lock.component.ts @@ -13,6 +13,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; +import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { VaultTimeoutService } from "@bitwarden/common/abstractions/vaultTimeout.service"; const BroadcasterSubscriptionId = "LockComponent"; @@ -23,6 +24,8 @@ const BroadcasterSubscriptionId = "LockComponent"; }) export class LockComponent extends BaseLockComponent implements OnDestroy { private deferFocus: boolean = null; + authenicatedUrl = "vault"; + unAuthenicatedUrl = "update-temp-password"; constructor( router: Router, @@ -38,7 +41,8 @@ export class LockComponent extends BaseLockComponent implements OnDestroy { private broadcasterService: BroadcasterService, ngZone: NgZone, logService: LogService, - keyConnectorService: KeyConnectorService + keyConnectorService: KeyConnectorService, + private syncService: SyncService ) { super( router, @@ -60,6 +64,11 @@ export class LockComponent extends BaseLockComponent implements OnDestroy { await super.ngOnInit(); const autoPromptBiometric = !(await this.stateService.getNoAutoPromptBiometrics()); + await this.syncService.fullSync(true); + + const forcePasswordReset = await this.stateService.getForcePasswordReset(); + this.successRoute = forcePasswordReset === true ? this.unAuthenicatedUrl : this.authenicatedUrl; + this.route.queryParams.subscribe((params) => { if (this.supportsBiometric && params.promptBiometric && autoPromptBiometric) { setTimeout(async () => {