From 7bed47b6d1e96b2370798cc5be2c9d3d77a57b54 Mon Sep 17 00:00:00 2001 From: Maciej Zieniuk Date: Tue, 25 Mar 2025 20:06:47 +0000 Subject: [PATCH] moving message sending side effect to sync --- .../browser/src/background/main.background.ts | 1 - .../service-container/service-container.ts | 1 - .../src/services/jslib-services.module.ts | 1 - .../services/key-connector.service.ts | 20 ++----------------- .../src/platform/sync/default-sync.service.ts | 4 ++++ 5 files changed, 6 insertions(+), 21 deletions(-) diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index b49cea2f58f..74fa6acdf79 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -743,7 +743,6 @@ export default class MainBackground { this.keyGenerationService, logoutCallback, this.stateProvider, - this.messagingService, ); const sdkClientFactory = flagEnabled("sdk") diff --git a/apps/cli/src/service-container/service-container.ts b/apps/cli/src/service-container/service-container.ts index 131866d722f..b7f423e8ff7 100644 --- a/apps/cli/src/service-container/service-container.ts +++ b/apps/cli/src/service-container/service-container.ts @@ -573,7 +573,6 @@ export class ServiceContainer { this.keyGenerationService, logoutCallback, this.stateProvider, - this.messagingService, ); this.twoFactorService = new TwoFactorService( diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 5b1d0047c9c..9cb39a35856 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -987,7 +987,6 @@ const safeProviders: SafeProvider[] = [ KeyGenerationServiceAbstraction, LOGOUT_CALLBACK, StateProvider, - MessagingServiceAbstraction, ], }), safeProvider({ diff --git a/libs/common/src/key-management/key-connector/services/key-connector.service.ts b/libs/common/src/key-management/key-connector/services/key-connector.service.ts index 9332aec2601..546b991132e 100644 --- a/libs/common/src/key-management/key-connector/services/key-connector.service.ts +++ b/libs/common/src/key-management/key-connector/services/key-connector.service.ts @@ -1,18 +1,9 @@ // FIXME: Update this file to be type safe and remove this and next line // @ts-strict-ignore -import { - combineLatest, - distinctUntilChanged, - filter, - firstValueFrom, - Observable, - of, - switchMap, -} from "rxjs"; +import { combineLatest, filter, firstValueFrom, Observable, of, switchMap } from "rxjs"; import { LogoutReason } from "@bitwarden/auth/common"; import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; -import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; import { Argon2KdfConfig, KdfConfig, @@ -64,7 +55,6 @@ export class KeyConnectorService implements KeyConnectorServiceAbstraction { private keyGenerationService: KeyGenerationService, private logoutCallback: (logoutReason: LogoutReason, userId?: string) => Promise, private stateProvider: StateProvider, - private messagingService: MessagingService, ) { this.convertAccountRequired$ = accountService.activeAccount$.pipe( filter((account) => account != null), @@ -80,18 +70,12 @@ export class KeyConnectorService implements KeyConnectorServiceAbstraction { tokenService.hasAccessToken$(account.id).pipe(filter((hasToken) => hasToken)), ]), ), - distinctUntilChanged(), switchMap(async ([userId, organizations, usesKeyConnector]) => { const loggedInUsingSso = await this.tokenService.getIsExternal(userId); const requiredByOrganization = this.findManagingOrganization(organizations) != null; const userIsNotUsingKeyConnector = !usesKeyConnector; - const needsMigration = - loggedInUsingSso && requiredByOrganization && userIsNotUsingKeyConnector; - if (needsMigration) { - this.messagingService.send("convertAccountToKeyConnector"); - } - return needsMigration; + return loggedInUsingSso && requiredByOrganization && userIsNotUsingKeyConnector; }), ); } diff --git a/libs/common/src/platform/sync/default-sync.service.ts b/libs/common/src/platform/sync/default-sync.service.ts index 8b551678e2e..54441514e88 100644 --- a/libs/common/src/platform/sync/default-sync.service.ts +++ b/libs/common/src/platform/sync/default-sync.service.ts @@ -214,6 +214,10 @@ export class DefaultSyncService extends CoreSyncService { await this.providerService.save(providers, response.id); await this.syncProfileOrganizations(response, response.id); + + if (await firstValueFrom(this.keyConnectorService.convertAccountRequired$)) { + this.messageSender.send("convertAccountToKeyConnector"); + } } private async setForceSetPasswordReasonIfNeeded(profileResponse: ProfileResponse) {