From 0795fef2522478cbd17592aae28d08c03803b6eb Mon Sep 17 00:00:00 2001 From: gbubemismith Date: Thu, 11 Apr 2024 01:29:27 +0100 Subject: [PATCH 1/4] fixed issue with clearing search index state --- apps/browser/src/background/main.background.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index bbcb9f96287..92f5a038fbf 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -1171,6 +1171,7 @@ export default class MainBackground { this.vaultTimeoutSettingsService.clear(userId), this.vaultFilterService.clear(), this.biometricStateService.logout(userId), + this.searchService.clearIndex(), /* We intentionally do not clear: * - autofillSettingsService * - badgeSettingsService @@ -1181,13 +1182,8 @@ export default class MainBackground { //Needs to be checked before state is cleaned const needStorageReseed = await this.needsStorageReseed(); - const currentUserId = await this.stateService.getUserId(); const newActiveUser = await this.stateService.clean({ userId: userId }); - if (userId == null || userId === currentUserId) { - await this.searchService.clearIndex(); - } - await this.stateEventRunnerService.handleEvent("logout", userId); if (newActiveUser != null) { From 4fdc9c6e658a5c93fc9c433082ccd1e2cec8a4d0 Mon Sep 17 00:00:00 2001 From: gbubemismith Date: Thu, 11 Apr 2024 01:48:00 +0100 Subject: [PATCH 2/4] clear user index before account is totally cleaned up --- apps/desktop/src/app/app.component.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index 257921e2ad6..c1a83d9b219 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -587,6 +587,7 @@ export class AppComponent implements OnInit, OnDestroy { await this.passwordGenerationService.clear(userBeingLoggedOut); await this.vaultTimeoutSettingsService.clear(userBeingLoggedOut); await this.biometricStateService.logout(userBeingLoggedOut as UserId); + await this.searchService.clearIndex(); await this.stateEventRunnerService.handleEvent("logout", userBeingLoggedOut as UserId); @@ -609,7 +610,6 @@ export class AppComponent implements OnInit, OnDestroy { // 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 === preLogoutActiveUserId) { - await this.searchService.clearIndex(); this.authService.logOut(async () => { if (expired) { this.platformUtilsService.showToast( From bcceddb2097c91f424a27ca30433ccc76f4b7742 Mon Sep 17 00:00:00 2001 From: gbubemismith Date: Thu, 11 Apr 2024 16:50:44 +0100 Subject: [PATCH 3/4] added logout clear on option --- libs/common/src/services/search.service.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/common/src/services/search.service.ts b/libs/common/src/services/search.service.ts index 429992b0760..38ddfe0e472 100644 --- a/libs/common/src/services/search.service.ts +++ b/libs/common/src/services/search.service.ts @@ -35,7 +35,7 @@ export const LUNR_SEARCH_INDEX = new UserKeyDefinition( "searchIndex", { deserializer: (obj: Jsonify) => obj, - clearOn: ["lock"], + clearOn: ["lock", "logout"], }, ); @@ -48,7 +48,7 @@ export const LUNR_SEARCH_INDEXED_ENTITY_ID = new UserKeyDefinition) => obj, - clearOn: ["lock"], + clearOn: ["lock", "logout"], }, ); @@ -61,7 +61,7 @@ export const LUNR_SEARCH_INDEXING = new UserKeyDefinition( "isIndexing", { deserializer: (obj: Jsonify) => obj, - clearOn: ["lock"], + clearOn: ["lock", "logout"], }, ); From dddeb93d64fb71dc6db2cfbf4ae0e0d54bbcbc88 Mon Sep 17 00:00:00 2001 From: gbubemismith Date: Thu, 11 Apr 2024 17:23:01 +0100 Subject: [PATCH 4/4] removed redundant clear index from logout --- apps/browser/src/background/main.background.ts | 1 - apps/desktop/src/app/app.component.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index 92f5a038fbf..0e43f420abc 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -1171,7 +1171,6 @@ export default class MainBackground { this.vaultTimeoutSettingsService.clear(userId), this.vaultFilterService.clear(), this.biometricStateService.logout(userId), - this.searchService.clearIndex(), /* We intentionally do not clear: * - autofillSettingsService * - badgeSettingsService diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index c1a83d9b219..b2b44e6b217 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -587,7 +587,6 @@ export class AppComponent implements OnInit, OnDestroy { await this.passwordGenerationService.clear(userBeingLoggedOut); await this.vaultTimeoutSettingsService.clear(userBeingLoggedOut); await this.biometricStateService.logout(userBeingLoggedOut as UserId); - await this.searchService.clearIndex(); await this.stateEventRunnerService.handleEvent("logout", userBeingLoggedOut as UserId);