From bcd8a4fb02f20dd07d5987e51e2e4e1adc7b6d16 Mon Sep 17 00:00:00 2001 From: Jared Snider <116684653+JaredSnider-Bitwarden@users.noreply.github.com> Date: Thu, 16 Nov 2023 16:15:42 -0500 Subject: [PATCH] PM-3857 - Desktop - App Comp - Refactor order of operations of the logout process to prevent premature process reload before user data can be fully cleaned up out of the state service. Probably fixes PM-3391 as well. (#6616) --- apps/desktop/src/app/app.component.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index 56b6378def..5167154258 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -537,6 +537,19 @@ export class AppComponent implements OnInit, OnDestroy { this.keyConnectorService.clear(), ]); + const preLogoutActiveUserId = this.activeUserId; + await this.stateService.clean({ userId: userBeingLoggedOut }); + + if (this.activeUserId == null) { + this.router.navigate(["login"]); + } else if (preLogoutActiveUserId !== this.activeUserId) { + this.messagingService.send("switchAccount"); + } + + await this.updateAppMenu(); + + // This must come last otherwise the logout will prematurely trigger + // a process reload before all the state service user data can be cleaned up if (userBeingLoggedOut === this.activeUserId) { this.searchService.clearIndex(); this.authService.logOut(async () => { @@ -549,17 +562,6 @@ export class AppComponent implements OnInit, OnDestroy { } }); } - - const preLogoutActiveUserId = this.activeUserId; - await this.stateService.clean({ userId: userBeingLoggedOut }); - - if (this.activeUserId == null) { - this.router.navigate(["login"]); - } else if (preLogoutActiveUserId !== this.activeUserId) { - this.messagingService.send("switchAccount"); - } - - await this.updateAppMenu(); } private async recordActivity() {