From c263eacd88b987b4a701f0e2dfc95ffa0f004096 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rui=20Tom=C3=A9?= <108268980+r-tome@users.noreply.github.com> Date: Mon, 8 Aug 2022 10:04:36 +0100 Subject: [PATCH] [EC-376] Extract API logic from PolicyService to PolicyApiService (#3203) * Added abstractions for PolicyApiService and PolicyService * Added implementations for PolicyApiService and PolicyService * Updated all references to new PolicyApiService and PolicyService * Deleted old PolicyService abstraction and implementation * Fixed CLI import path for policy.service * Fixed main.background.ts policyApiService dependency for policyService * Updated policy-api.service with the correct imports * [EC-376] Sorted methods order in PolicyApiService * [EC-376] Removed unused clearCache method from PolicyService * [EC-376] Added upsert method to PolicyService * [EC-376] PolicyApiService putPolicy method now upserts data to PolicyService --- .../browser/src/background/main.background.ts | 17 ++- .../src/background/notification.background.ts | 2 +- .../popup/accounts/set-password.component.ts | 5 +- .../update-temp-password.component.ts | 2 +- .../src/popup/send/send-add-edit.component.ts | 2 +- .../popup/send/send-groupings.component.ts | 2 +- .../src/popup/send/send-type.component.ts | 2 +- .../src/popup/services/services.module.ts | 14 +- .../src/popup/settings/export.component.ts | 2 +- .../src/popup/vault/add-edit.component.ts | 2 +- .../src/services/vaultFilter.service.ts | 2 +- apps/cli/src/bw.ts | 8 +- apps/cli/src/commands/export.command.ts | 2 +- apps/cli/src/commands/login.command.ts | 2 +- .../app/accounts/set-password.component.ts | 5 +- .../update-temp-password.component.ts | 2 +- apps/desktop/src/app/app.component.ts | 4 +- .../src/app/send/add-edit.component.ts | 2 +- apps/desktop/src/app/send/send.component.ts | 2 +- .../src/app/vault/add-edit.component.ts | 2 +- .../desktop/src/app/vault/export.component.ts | 2 +- .../accounts/accept-organization.component.ts | 6 +- apps/web/src/app/accounts/login.component.ts | 8 +- .../src/app/accounts/register.component.ts | 6 +- .../app/accounts/set-password.component.ts | 5 +- .../app/accounts/update-password.component.ts | 2 +- .../update-temp-password.component.ts | 2 +- apps/web/src/app/app.component.ts | 4 +- apps/web/src/app/core/event.service.ts | 2 +- .../register-form/register-form.component.ts | 2 +- .../trial-initiation/billing.component.ts | 2 +- .../trial-initiation.component.ts | 8 +- .../organization-options.component.ts | 2 +- .../vault-filter/vault-filter.service.ts | 2 +- .../organizations/manage/people.component.ts | 6 +- .../manage/policies.component.ts | 6 +- .../manage/policy-edit.component.ts | 15 ++- .../manage/reset-password.component.ts | 2 +- .../settings/two-factor-setup.component.ts | 2 +- .../import-export/org-export.component.ts | 2 +- .../import-export/org-import.component.ts | 2 +- .../organizations/vault/add-edit.component.ts | 2 +- apps/web/src/app/send/add-edit.component.ts | 2 +- apps/web/src/app/send/send.component.ts | 2 +- .../app/settings/change-password.component.ts | 2 +- .../emergency-access-takeover.component.ts | 2 +- .../settings/emergency-add-edit.component.ts | 2 +- .../settings/organization-plans.component.ts | 2 +- .../settings/two-factor-setup.component.ts | 2 +- .../tools/import-export/export.component.ts | 2 +- .../tools/import-export/import.component.ts | 2 +- apps/web/src/app/vault/add-edit.component.ts | 2 +- .../src/components/add-edit.component.ts | 2 +- .../components/change-password.component.ts | 2 +- .../src/components/export.component.ts | 2 +- .../src/components/send/add-edit.component.ts | 2 +- .../src/components/send/send.component.ts | 2 +- .../src/components/set-password.component.ts | 6 +- .../settings/vault-timeout-input.component.ts | 2 +- .../components/update-password.component.ts | 2 +- .../update-temp-password.component.ts | 2 +- .../vault-filter/vault-filter.service.ts | 2 +- .../src/services/jslib-services.module.ts | 25 +++- libs/common/src/abstractions/api.service.ts | 20 --- .../policy/policy-api.service.abstraction.ts | 24 ++++ .../policy.service.abstraction.ts} | 26 ++-- libs/common/src/services/api.service.ts | 79 ------------ .../services/passwordGeneration.service.ts | 2 +- .../src/services/policy/policy-api.service.ts | 120 ++++++++++++++++++ .../services/{ => policy}/policy.service.ts | 94 ++++++-------- libs/common/src/services/sync.service.ts | 4 +- .../src/services/vaultTimeout.service.ts | 2 +- libs/node/src/cli/commands/login.command.ts | 2 +- 73 files changed, 348 insertions(+), 265 deletions(-) create mode 100644 libs/common/src/abstractions/policy/policy-api.service.abstraction.ts rename libs/common/src/abstractions/{policy.service.ts => policy/policy.service.abstraction.ts} (54%) create mode 100644 libs/common/src/services/policy/policy-api.service.ts rename libs/common/src/services/{ => policy}/policy.service.ts (73%) diff --git a/apps/browser/src/background/main.background.ts b/apps/browser/src/background/main.background.ts index 237e155427a..10bf24abe47 100644 --- a/apps/browser/src/background/main.background.ts +++ b/apps/browser/src/background/main.background.ts @@ -20,7 +20,8 @@ import { NotificationsService as NotificationsServiceAbstraction } from "@bitwar import { OrganizationService as OrganizationServiceAbstraction } from "@bitwarden/common/abstractions/organization.service"; import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { InternalPolicyService as InternalPolicyServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { ProviderService as ProviderServiceAbstraction } from "@bitwarden/common/abstractions/provider.service"; import { SearchService as SearchServiceAbstraction } from "@bitwarden/common/abstractions/search.service"; import { SendService as SendServiceAbstraction } from "@bitwarden/common/abstractions/send.service"; @@ -60,7 +61,8 @@ import { MemoryStorageService } from "@bitwarden/common/services/memoryStorage.s import { NotificationsService } from "@bitwarden/common/services/notifications.service"; import { OrganizationService } from "@bitwarden/common/services/organization.service"; import { PasswordGenerationService } from "@bitwarden/common/services/passwordGeneration.service"; -import { PolicyService } from "@bitwarden/common/services/policy.service"; +import { PolicyApiService } from "@bitwarden/common/services/policy/policy-api.service"; +import { PolicyService } from "@bitwarden/common/services/policy/policy.service"; import { ProviderService } from "@bitwarden/common/services/provider.service"; import { SearchService } from "@bitwarden/common/services/search.service"; import { SendService } from "@bitwarden/common/services/send.service"; @@ -137,7 +139,7 @@ export default class MainBackground { stateMigrationService: StateMigrationService; systemService: SystemServiceAbstraction; eventService: EventServiceAbstraction; - policyService: PolicyServiceAbstraction; + policyService: InternalPolicyServiceAbstraction; popupUtilsService: PopupUtilsService; sendService: SendServiceAbstraction; fileUploadService: FileUploadServiceAbstraction; @@ -150,6 +152,7 @@ export default class MainBackground { usernameGenerationService: UsernameGenerationServiceAbstraction; encryptService: EncryptService; folderApiService: FolderApiServiceAbstraction; + policyApiService: PolicyApiServiceAbstraction; // Passed to the popup for Safari to workaround issues with theming, downloading, etc. backgroundWindow = window; @@ -292,10 +295,12 @@ export default class MainBackground { this.stateService ); this.organizationService = new OrganizationService(this.stateService); - this.policyService = new PolicyService( + this.policyService = new PolicyService(this.stateService, this.organizationService); + this.policyApiService = new PolicyApiService( + this.policyService, + this.apiService, this.stateService, - this.organizationService, - this.apiService + this.organizationService ); this.keyConnectorService = new KeyConnectorService( this.stateService, diff --git a/apps/browser/src/background/notification.background.ts b/apps/browser/src/background/notification.background.ts index 7cbdd0993e5..e011f3d6976 100644 --- a/apps/browser/src/background/notification.background.ts +++ b/apps/browser/src/background/notification.background.ts @@ -3,7 +3,7 @@ import { firstValueFrom } from "rxjs"; import { AuthService } from "@bitwarden/common/abstractions/auth.service"; import { CipherService } from "@bitwarden/common/abstractions/cipher.service"; import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { AuthenticationStatus } from "@bitwarden/common/enums/authenticationStatus"; import { CipherType } from "@bitwarden/common/enums/cipherType"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/apps/browser/src/popup/accounts/set-password.component.ts b/apps/browser/src/popup/accounts/set-password.component.ts index a48e682e919..5d59bbb3f67 100644 --- a/apps/browser/src/popup/accounts/set-password.component.ts +++ b/apps/browser/src/popup/accounts/set-password.component.ts @@ -8,7 +8,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; @@ -25,6 +26,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent { stateService: StateService, passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService, + policyApiService: PolicyApiServiceAbstraction, policyService: PolicyService, router: Router, syncService: SyncService, @@ -36,6 +38,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent { messagingService, passwordGenerationService, platformUtilsService, + policyApiService, policyService, router, apiService, diff --git a/apps/browser/src/popup/accounts/update-temp-password.component.ts b/apps/browser/src/popup/accounts/update-temp-password.component.ts index c30a60119ed..0910bd4d190 100644 --- a/apps/browser/src/popup/accounts/update-temp-password.component.ts +++ b/apps/browser/src/popup/accounts/update-temp-password.component.ts @@ -8,7 +8,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; diff --git a/apps/browser/src/popup/send/send-add-edit.component.ts b/apps/browser/src/popup/send/send-add-edit.component.ts index 87c64777ed5..1877549ba6d 100644 --- a/apps/browser/src/popup/send/send-add-edit.component.ts +++ b/apps/browser/src/popup/send/send-add-edit.component.ts @@ -9,7 +9,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { StateService } from "../../services/abstractions/state.service"; diff --git a/apps/browser/src/popup/send/send-groupings.component.ts b/apps/browser/src/popup/send/send-groupings.component.ts index b8dc6831370..5faa1a3c848 100644 --- a/apps/browser/src/popup/send/send-groupings.component.ts +++ b/apps/browser/src/popup/send/send-groupings.component.ts @@ -7,7 +7,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; diff --git a/apps/browser/src/popup/send/send-type.component.ts b/apps/browser/src/popup/send/send-type.component.ts index c47ff79255a..36e0dce89a8 100644 --- a/apps/browser/src/popup/send/send-type.component.ts +++ b/apps/browser/src/popup/send/send-type.component.ts @@ -9,7 +9,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { SendType } from "@bitwarden/common/enums/sendType"; diff --git a/apps/browser/src/popup/services/services.module.ts b/apps/browser/src/popup/services/services.module.ts index 3cbb0091597..925de8721f7 100644 --- a/apps/browser/src/popup/services/services.module.ts +++ b/apps/browser/src/popup/services/services.module.ts @@ -33,7 +33,8 @@ import { OrganizationService } from "@bitwarden/common/abstractions/organization import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PasswordRepromptService as PasswordRepromptServiceAbstraction } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { ProviderService } from "@bitwarden/common/abstractions/provider.service"; import { SearchService as SearchServiceAbstraction } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; @@ -181,7 +182,16 @@ function getBgService(service: keyof MainBackground) { { provide: I18nService, useFactory: getBgService("i18nService"), deps: [] }, { provide: CryptoService, useFactory: getBgService("cryptoService"), deps: [] }, { provide: EventService, useFactory: getBgService("eventService"), deps: [] }, - { provide: PolicyService, useFactory: getBgService("policyService"), deps: [] }, + { + provide: PolicyService, + useFactory: getBgService("policyService"), + deps: [], + }, + { + provide: PolicyApiServiceAbstraction, + useFactory: getBgService("policyApiService"), + deps: [], + }, { provide: PlatformUtilsService, useFactory: getBgService("platformUtilsService"), diff --git a/apps/browser/src/popup/settings/export.component.ts b/apps/browser/src/popup/settings/export.component.ts index d3c9e01fdc2..8dc123566db 100644 --- a/apps/browser/src/popup/settings/export.component.ts +++ b/apps/browser/src/popup/settings/export.component.ts @@ -10,7 +10,7 @@ import { FileDownloadService } from "@bitwarden/common/abstractions/fileDownload import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; @Component({ diff --git a/apps/browser/src/popup/vault/add-edit.component.ts b/apps/browser/src/popup/vault/add-edit.component.ts index 899b9d6cff3..bed1d30d6bb 100644 --- a/apps/browser/src/popup/vault/add-edit.component.ts +++ b/apps/browser/src/popup/vault/add-edit.component.ts @@ -15,7 +15,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { CipherType } from "@bitwarden/common/enums/cipherType"; import { LoginUriView } from "@bitwarden/common/models/view/loginUriView"; diff --git a/apps/browser/src/services/vaultFilter.service.ts b/apps/browser/src/services/vaultFilter.service.ts index 15fa3523a38..ce6ffc828af 100644 --- a/apps/browser/src/services/vaultFilter.service.ts +++ b/apps/browser/src/services/vaultFilter.service.ts @@ -4,7 +4,7 @@ import { CipherService } from "@bitwarden/common/abstractions/cipher.service"; import { CollectionService } from "@bitwarden/common/abstractions/collection.service"; import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { CipherView } from "@bitwarden/common/models/view/cipherView"; diff --git a/apps/cli/src/bw.ts b/apps/cli/src/bw.ts index 6c217a7569c..6739eb5d975 100644 --- a/apps/cli/src/bw.ts +++ b/apps/cli/src/bw.ts @@ -31,7 +31,7 @@ import { MemoryStorageService } from "@bitwarden/common/services/memoryStorage.s import { NoopMessagingService } from "@bitwarden/common/services/noopMessaging.service"; import { OrganizationService } from "@bitwarden/common/services/organization.service"; import { PasswordGenerationService } from "@bitwarden/common/services/passwordGeneration.service"; -import { PolicyService } from "@bitwarden/common/services/policy.service"; +import { PolicyService } from "@bitwarden/common/services/policy/policy.service"; import { ProviderService } from "@bitwarden/common/services/provider.service"; import { SearchService } from "@bitwarden/common/services/search.service"; import { SendService } from "@bitwarden/common/services/send.service"; @@ -223,11 +223,7 @@ export class Main { this.organizationService = new OrganizationService(this.stateService); - this.policyService = new PolicyService( - this.stateService, - this.organizationService, - this.apiService - ); + this.policyService = new PolicyService(this.stateService, this.organizationService); this.sendService = new SendService( this.cryptoService, diff --git a/apps/cli/src/commands/export.command.ts b/apps/cli/src/commands/export.command.ts index eb8f3926aed..50446d7e027 100644 --- a/apps/cli/src/commands/export.command.ts +++ b/apps/cli/src/commands/export.command.ts @@ -2,7 +2,7 @@ import * as program from "commander"; import * as inquirer from "inquirer"; import { ExportFormat, ExportService } from "@bitwarden/common/abstractions/export.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { Utils } from "@bitwarden/common/misc/utils"; import { Response } from "@bitwarden/node/cli/models/response"; diff --git a/apps/cli/src/commands/login.command.ts b/apps/cli/src/commands/login.command.ts index dd841e2b9ec..57a502ecd4a 100644 --- a/apps/cli/src/commands/login.command.ts +++ b/apps/cli/src/commands/login.command.ts @@ -9,7 +9,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { KeyConnectorService } from "@bitwarden/common/abstractions/keyConnector.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { TwoFactorService } from "@bitwarden/common/abstractions/twoFactor.service"; diff --git a/apps/desktop/src/app/accounts/set-password.component.ts b/apps/desktop/src/app/accounts/set-password.component.ts index a445a5328a8..b481ee99ec3 100644 --- a/apps/desktop/src/app/accounts/set-password.component.ts +++ b/apps/desktop/src/app/accounts/set-password.component.ts @@ -9,7 +9,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; @@ -27,6 +28,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent implements On messagingService: MessagingService, passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService, + policyApiService: PolicyApiServiceAbstraction, policyService: PolicyService, router: Router, syncService: SyncService, @@ -41,6 +43,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent implements On messagingService, passwordGenerationService, platformUtilsService, + policyApiService, policyService, router, apiService, diff --git a/apps/desktop/src/app/accounts/update-temp-password.component.ts b/apps/desktop/src/app/accounts/update-temp-password.component.ts index d6879e9734b..768bdb4e2e9 100644 --- a/apps/desktop/src/app/accounts/update-temp-password.component.ts +++ b/apps/desktop/src/app/accounts/update-temp-password.component.ts @@ -8,7 +8,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index e212b6a8191..dc089e20e45 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -28,7 +28,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi import { NotificationsService } from "@bitwarden/common/abstractions/notifications.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { InternalPolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SettingsService } from "@bitwarden/common/abstractions/settings.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; @@ -123,7 +123,7 @@ export class AppComponent implements OnInit { private systemService: SystemService, private stateService: StateService, private eventService: EventService, - private policyService: PolicyService, + private policyService: InternalPolicyService, private modalService: ModalService, private keyConnectorService: KeyConnectorService ) {} diff --git a/apps/desktop/src/app/send/add-edit.component.ts b/apps/desktop/src/app/send/add-edit.component.ts index 8440a636ca1..b6f63254a8d 100644 --- a/apps/desktop/src/app/send/add-edit.component.ts +++ b/apps/desktop/src/app/send/add-edit.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; diff --git a/apps/desktop/src/app/send/send.component.ts b/apps/desktop/src/app/send/send.component.ts index e927256d81a..5f9b3cde7cb 100644 --- a/apps/desktop/src/app/send/send.component.ts +++ b/apps/desktop/src/app/send/send.component.ts @@ -6,7 +6,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { SendView } from "@bitwarden/common/models/view/sendView"; diff --git a/apps/desktop/src/app/vault/add-edit.component.ts b/apps/desktop/src/app/vault/add-edit.component.ts index 0d3842998d2..aa76d2ba7dd 100644 --- a/apps/desktop/src/app/vault/add-edit.component.ts +++ b/apps/desktop/src/app/vault/add-edit.component.ts @@ -14,7 +14,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; const BroadcasterSubscriptionId = "AddEditComponent"; diff --git a/apps/desktop/src/app/vault/export.component.ts b/apps/desktop/src/app/vault/export.component.ts index fcc2732c953..e21d8e94677 100644 --- a/apps/desktop/src/app/vault/export.component.ts +++ b/apps/desktop/src/app/vault/export.component.ts @@ -12,7 +12,7 @@ import { FileDownloadService } from "@bitwarden/common/abstractions/fileDownload import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; const BroadcasterSubscriptionId = "ExportComponent"; diff --git a/apps/web/src/app/accounts/accept-organization.component.ts b/apps/web/src/app/accounts/accept-organization.component.ts index 58aeef7b9bf..1e9e8e32aa0 100644 --- a/apps/web/src/app/accounts/accept-organization.component.ts +++ b/apps/web/src/app/accounts/accept-organization.component.ts @@ -6,7 +6,8 @@ import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { Utils } from "@bitwarden/common/misc/utils"; import { Policy } from "@bitwarden/common/models/domain/policy"; @@ -31,6 +32,7 @@ export class AcceptOrganizationComponent extends BaseAcceptComponent { private apiService: ApiService, stateService: StateService, private cryptoService: CryptoService, + private policyApiService: PolicyApiServiceAbstraction, private policyService: PolicyService, private logService: LogService ) { @@ -93,7 +95,7 @@ export class AcceptOrganizationComponent extends BaseAcceptComponent { private async performResetPasswordAutoEnroll(qParams: any): Promise { let policyList: Policy[] = null; try { - const policies = await this.apiService.getPoliciesByToken( + const policies = await this.policyApiService.getPoliciesByToken( qParams.organizationId, qParams.token, qParams.email, diff --git a/apps/web/src/app/accounts/login.component.ts b/apps/web/src/app/accounts/login.component.ts index e8af9bc2f7f..30b09246b06 100644 --- a/apps/web/src/app/accounts/login.component.ts +++ b/apps/web/src/app/accounts/login.component.ts @@ -12,7 +12,8 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { InternalPolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { PolicyData } from "@bitwarden/common/models/data/policyData"; import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; import { Policy } from "@bitwarden/common/models/domain/policy"; @@ -40,7 +41,8 @@ export class LoginComponent extends BaseLoginComponent { passwordGenerationService: PasswordGenerationService, cryptoFunctionService: CryptoFunctionService, private apiService: ApiService, - private policyService: PolicyService, + private policyApiService: PolicyApiServiceAbstraction, + private policyService: InternalPolicyService, logService: LogService, ngZone: NgZone, protected stateService: StateService, @@ -94,7 +96,7 @@ export class LoginComponent extends BaseLoginComponent { if (invite != null) { let policyList: Policy[] = null; try { - this.policies = await this.apiService.getPoliciesByToken( + this.policies = await this.policyApiService.getPoliciesByToken( invite.organizationId, invite.token, invite.email, diff --git a/apps/web/src/app/accounts/register.component.ts b/apps/web/src/app/accounts/register.component.ts index 05db3184a43..3f5ce3bf7d6 100644 --- a/apps/web/src/app/accounts/register.component.ts +++ b/apps/web/src/app/accounts/register.component.ts @@ -13,7 +13,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { PolicyData } from "@bitwarden/common/models/data/policyData"; import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; @@ -46,6 +47,7 @@ export class RegisterComponent extends BaseRegisterComponent { stateService: StateService, platformUtilsService: PlatformUtilsService, passwordGenerationService: PasswordGenerationService, + private policyApiService: PolicyApiServiceAbstraction, private policyService: PolicyService, environmentService: EnvironmentService, logService: LogService, @@ -110,7 +112,7 @@ export class RegisterComponent extends BaseRegisterComponent { const invite = await this.stateService.getOrganizationInvitation(); if (invite != null) { try { - const policies = await this.apiService.getPoliciesByToken( + const policies = await this.policyApiService.getPoliciesByToken( invite.organizationId, invite.token, invite.email, diff --git a/apps/web/src/app/accounts/set-password.component.ts b/apps/web/src/app/accounts/set-password.component.ts index c7841bc5844..5b7bc2ec61f 100644 --- a/apps/web/src/app/accounts/set-password.component.ts +++ b/apps/web/src/app/accounts/set-password.component.ts @@ -8,7 +8,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; @@ -24,6 +25,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent { messagingService: MessagingService, passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService, + policyApiService: PolicyApiServiceAbstraction, policyService: PolicyService, router: Router, syncService: SyncService, @@ -36,6 +38,7 @@ export class SetPasswordComponent extends BaseSetPasswordComponent { messagingService, passwordGenerationService, platformUtilsService, + policyApiService, policyService, router, apiService, diff --git a/apps/web/src/app/accounts/update-password.component.ts b/apps/web/src/app/accounts/update-password.component.ts index 2d9392f5e77..0d5da3ca3f3 100644 --- a/apps/web/src/app/accounts/update-password.component.ts +++ b/apps/web/src/app/accounts/update-password.component.ts @@ -9,7 +9,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; diff --git a/apps/web/src/app/accounts/update-temp-password.component.ts b/apps/web/src/app/accounts/update-temp-password.component.ts index 8b02758677a..2360d9c5a70 100644 --- a/apps/web/src/app/accounts/update-temp-password.component.ts +++ b/apps/web/src/app/accounts/update-temp-password.component.ts @@ -8,7 +8,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; diff --git a/apps/web/src/app/app.component.ts b/apps/web/src/app/app.component.ts index af232655ad6..381fd551124 100644 --- a/apps/web/src/app/app.component.ts +++ b/apps/web/src/app/app.component.ts @@ -19,7 +19,7 @@ import { KeyConnectorService } from "@bitwarden/common/abstractions/keyConnector import { NotificationsService } from "@bitwarden/common/abstractions/notifications.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { InternalPolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SettingsService } from "@bitwarden/common/abstractions/settings.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; @@ -73,7 +73,7 @@ export class AppComponent implements OnDestroy, OnInit { private routerService: RouterService, private stateService: StateService, private eventService: EventService, - private policyService: PolicyService, + private policyService: InternalPolicyService, protected policyListService: PolicyListService, private keyConnectorService: KeyConnectorService ) {} diff --git a/apps/web/src/app/core/event.service.ts b/apps/web/src/app/core/event.service.ts index 2627c6b6a82..1a17998747e 100644 --- a/apps/web/src/app/core/event.service.ts +++ b/apps/web/src/app/core/event.service.ts @@ -1,7 +1,7 @@ import { Injectable } from "@angular/core"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { DeviceType } from "@bitwarden/common/enums/deviceType"; import { EventType } from "@bitwarden/common/enums/eventType"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/apps/web/src/app/modules/register-form/register-form.component.ts b/apps/web/src/app/modules/register-form/register-form.component.ts index 30f71601789..0ec010e5660 100644 --- a/apps/web/src/app/modules/register-form/register-form.component.ts +++ b/apps/web/src/app/modules/register-form/register-form.component.ts @@ -12,7 +12,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; diff --git a/apps/web/src/app/modules/trial-initiation/billing.component.ts b/apps/web/src/app/modules/trial-initiation/billing.component.ts index 6a57d3f6ac4..6f02000b958 100644 --- a/apps/web/src/app/modules/trial-initiation/billing.component.ts +++ b/apps/web/src/app/modules/trial-initiation/billing.component.ts @@ -9,7 +9,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { ProductType } from "@bitwarden/common/enums/productType"; diff --git a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts index fcad101ac26..b6615dd1f48 100644 --- a/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts +++ b/apps/web/src/app/modules/trial-initiation/trial-initiation.component.ts @@ -5,10 +5,10 @@ import { UntypedFormBuilder, Validators } from "@angular/forms"; import { ActivatedRoute, Router } from "@angular/router"; import { first } from "rxjs"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { PlanType } from "@bitwarden/common/enums/planType"; import { ProductType } from "@bitwarden/common/enums/productType"; @@ -48,8 +48,8 @@ export class TrialInitiationComponent implements OnInit { private formBuilder: UntypedFormBuilder, private titleCasePipe: TitleCasePipe, private stateService: StateService, - private apiService: ApiService, private logService: LogService, + private policyApiService: PolicyApiServiceAbstraction, private policyService: PolicyService, private i18nService: I18nService ) {} @@ -88,7 +88,7 @@ export class TrialInitiationComponent implements OnInit { const invite = await this.stateService.getOrganizationInvitation(); if (invite != null) { try { - const policies = await this.apiService.getPoliciesByToken( + const policies = await this.policyApiService.getPoliciesByToken( invite.organizationId, invite.token, invite.email, diff --git a/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts b/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts index fd2cd437e20..f96a3cb8a9b 100644 --- a/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts +++ b/apps/web/src/app/modules/vault-filter/components/organization-options.component.ts @@ -5,7 +5,7 @@ import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { Organization } from "@bitwarden/common/models/domain/organization"; diff --git a/apps/web/src/app/modules/vault-filter/vault-filter.service.ts b/apps/web/src/app/modules/vault-filter/vault-filter.service.ts index 6e221b219ac..9ebe91357db 100644 --- a/apps/web/src/app/modules/vault-filter/vault-filter.service.ts +++ b/apps/web/src/app/modules/vault-filter/vault-filter.service.ts @@ -9,7 +9,7 @@ import { CollectionService } from "@bitwarden/common/abstractions/collection.ser import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { CollectionData } from "@bitwarden/common/models/data/collectionData"; import { Collection } from "@bitwarden/common/models/domain/collection"; diff --git a/apps/web/src/app/organizations/manage/people.component.ts b/apps/web/src/app/organizations/manage/people.component.ts index 922fb6847f1..1763e9d414e 100644 --- a/apps/web/src/app/organizations/manage/people.component.ts +++ b/apps/web/src/app/organizations/manage/people.component.ts @@ -12,7 +12,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; @@ -84,6 +85,7 @@ export class PeopleComponent private router: Router, searchService: SearchService, validationService: ValidationService, + private policyApiService: PolicyApiServiceAbstraction, private policyService: PolicyService, logService: LogService, searchPipe: SearchPipe, @@ -151,7 +153,7 @@ export class PeopleComponent } async load() { - const resetPasswordPolicy = await this.policyService.getPolicyForOrganization( + const resetPasswordPolicy = await this.policyApiService.getPolicyForOrganization( PolicyType.ResetPassword, this.organizationId ); diff --git a/apps/web/src/app/organizations/manage/policies.component.ts b/apps/web/src/app/organizations/manage/policies.component.ts index 9dae83ee704..dde0c3def43 100644 --- a/apps/web/src/app/organizations/manage/policies.component.ts +++ b/apps/web/src/app/organizations/manage/policies.component.ts @@ -3,8 +3,8 @@ import { ActivatedRoute, Router } from "@angular/router"; import { first } from "rxjs/operators"; import { ModalService } from "@bitwarden/angular/services/modal.service"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { Organization } from "@bitwarden/common/models/domain/organization"; import { PolicyResponse } from "@bitwarden/common/models/response/policyResponse"; @@ -31,10 +31,10 @@ export class PoliciesComponent implements OnInit { private policiesEnabledMap: Map = new Map(); constructor( - private apiService: ApiService, private route: ActivatedRoute, private modalService: ModalService, private organizationService: OrganizationService, + private policyApiService: PolicyApiServiceAbstraction, private policyListService: PolicyListService, private router: Router ) {} @@ -73,7 +73,7 @@ export class PoliciesComponent implements OnInit { } async load() { - const response = await this.apiService.getPolicies(this.organizationId); + const response = await this.policyApiService.getPolicies(this.organizationId); this.orgPolicies = response.data != null && response.data.length > 0 ? response.data : []; this.orgPolicies.forEach((op) => { this.policiesEnabledMap.set(op.type, op.enabled); diff --git a/apps/web/src/app/organizations/manage/policy-edit.component.ts b/apps/web/src/app/organizations/manage/policy-edit.component.ts index fea0ee804eb..4efb35cba37 100644 --- a/apps/web/src/app/organizations/manage/policy-edit.component.ts +++ b/apps/web/src/app/organizations/manage/policy-edit.component.ts @@ -9,10 +9,10 @@ import { ViewContainerRef, } from "@angular/core"; -import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { PolicyRequest } from "@bitwarden/common/models/request/policyRequest"; import { PolicyResponse } from "@bitwarden/common/models/response/policyResponse"; @@ -42,7 +42,7 @@ export class PolicyEditComponent { private policyResponse: PolicyResponse; constructor( - private apiService: ApiService, + private policyApiService: PolicyApiServiceAbstraction, private i18nService: I18nService, private platformUtilsService: PlatformUtilsService, private componentFactoryResolver: ComponentFactoryResolver, @@ -65,7 +65,10 @@ export class PolicyEditComponent { async load() { try { - this.policyResponse = await this.apiService.getPolicy(this.organizationId, this.policy.type); + this.policyResponse = await this.policyApiService.getPolicy( + this.organizationId, + this.policy.type + ); } catch (e) { if (e.statusCode === 404) { this.policyResponse = new PolicyResponse({ Enabled: false }); @@ -85,7 +88,11 @@ export class PolicyEditComponent { } try { - this.formPromise = this.apiService.putPolicy(this.organizationId, this.policy.type, request); + this.formPromise = this.policyApiService.putPolicy( + this.organizationId, + this.policy.type, + request + ); await this.formPromise; this.platformUtilsService.showToast( "success", diff --git a/apps/web/src/app/organizations/manage/reset-password.component.ts b/apps/web/src/app/organizations/manage/reset-password.component.ts index 65ed14b0ede..84c9a5c143e 100644 --- a/apps/web/src/app/organizations/manage/reset-password.component.ts +++ b/apps/web/src/app/organizations/manage/reset-password.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { EncString } from "@bitwarden/common/models/domain/encString"; import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; import { SymmetricCryptoKey } from "@bitwarden/common/models/domain/symmetricCryptoKey"; diff --git a/apps/web/src/app/organizations/settings/two-factor-setup.component.ts b/apps/web/src/app/organizations/settings/two-factor-setup.component.ts index d082d9ecaef..c3684aa420e 100644 --- a/apps/web/src/app/organizations/settings/two-factor-setup.component.ts +++ b/apps/web/src/app/organizations/settings/two-factor-setup.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { TwoFactorProviderType } from "@bitwarden/common/enums/twoFactorProviderType"; diff --git a/apps/web/src/app/organizations/tools/import-export/org-export.component.ts b/apps/web/src/app/organizations/tools/import-export/org-export.component.ts index e8ccf7bf7d0..277446a36a5 100644 --- a/apps/web/src/app/organizations/tools/import-export/org-export.component.ts +++ b/apps/web/src/app/organizations/tools/import-export/org-export.component.ts @@ -9,7 +9,7 @@ import { FileDownloadService } from "@bitwarden/common/abstractions/fileDownload import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; import { EventType } from "@bitwarden/common/enums/eventType"; diff --git a/apps/web/src/app/organizations/tools/import-export/org-import.component.ts b/apps/web/src/app/organizations/tools/import-export/org-import.component.ts index 5a1c303eac4..504163a76fc 100644 --- a/apps/web/src/app/organizations/tools/import-export/org-import.component.ts +++ b/apps/web/src/app/organizations/tools/import-export/org-import.component.ts @@ -6,7 +6,7 @@ import { ImportService } from "@bitwarden/common/abstractions/import.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { ImportComponent } from "../../../tools/import-export/import.component"; diff --git a/apps/web/src/app/organizations/vault/add-edit.component.ts b/apps/web/src/app/organizations/vault/add-edit.component.ts index dac29f4e33f..82fb93a12db 100644 --- a/apps/web/src/app/organizations/vault/add-edit.component.ts +++ b/apps/web/src/app/organizations/vault/add-edit.component.ts @@ -13,7 +13,7 @@ import { OrganizationService } from "@bitwarden/common/abstractions/organization import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { TotpService } from "@bitwarden/common/abstractions/totp.service"; import { CipherData } from "@bitwarden/common/models/data/cipherData"; diff --git a/apps/web/src/app/send/add-edit.component.ts b/apps/web/src/app/send/add-edit.component.ts index 038de04fa5f..9091a60dd8d 100644 --- a/apps/web/src/app/send/add-edit.component.ts +++ b/apps/web/src/app/send/add-edit.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; diff --git a/apps/web/src/app/send/send.component.ts b/apps/web/src/app/send/send.component.ts index b7466cfeb52..4024f7c18f7 100644 --- a/apps/web/src/app/send/send.component.ts +++ b/apps/web/src/app/send/send.component.ts @@ -7,7 +7,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { SendView } from "@bitwarden/common/models/view/sendView"; diff --git a/apps/web/src/app/settings/change-password.component.ts b/apps/web/src/app/settings/change-password.component.ts index 367cbe9498b..86c3987fd93 100644 --- a/apps/web/src/app/settings/change-password.component.ts +++ b/apps/web/src/app/settings/change-password.component.ts @@ -13,7 +13,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; diff --git a/apps/web/src/app/settings/emergency-access-takeover.component.ts b/apps/web/src/app/settings/emergency-access-takeover.component.ts index dea4d3862a8..5731dc8b891 100644 --- a/apps/web/src/app/settings/emergency-access-takeover.component.ts +++ b/apps/web/src/app/settings/emergency-access-takeover.component.ts @@ -8,7 +8,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { KdfType } from "@bitwarden/common/enums/kdfType"; import { PolicyData } from "@bitwarden/common/models/data/policyData"; diff --git a/apps/web/src/app/settings/emergency-add-edit.component.ts b/apps/web/src/app/settings/emergency-add-edit.component.ts index 28b69693431..cf6aceb0900 100644 --- a/apps/web/src/app/settings/emergency-add-edit.component.ts +++ b/apps/web/src/app/settings/emergency-add-edit.component.ts @@ -12,7 +12,7 @@ import { OrganizationService } from "@bitwarden/common/abstractions/organization import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { TotpService } from "@bitwarden/common/abstractions/totp.service"; import { Cipher } from "@bitwarden/common/models/domain/cipher"; diff --git a/apps/web/src/app/settings/organization-plans.component.ts b/apps/web/src/app/settings/organization-plans.component.ts index 4b949eb9087..b7598fc9790 100644 --- a/apps/web/src/app/settings/organization-plans.component.ts +++ b/apps/web/src/app/settings/organization-plans.component.ts @@ -9,7 +9,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { PaymentMethodType } from "@bitwarden/common/enums/paymentMethodType"; import { PlanType } from "@bitwarden/common/enums/planType"; diff --git a/apps/web/src/app/settings/two-factor-setup.component.ts b/apps/web/src/app/settings/two-factor-setup.component.ts index efcc5a3747e..35c8a0f16db 100644 --- a/apps/web/src/app/settings/two-factor-setup.component.ts +++ b/apps/web/src/app/settings/two-factor-setup.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { TwoFactorProviderType } from "@bitwarden/common/enums/twoFactorProviderType"; diff --git a/apps/web/src/app/tools/import-export/export.component.ts b/apps/web/src/app/tools/import-export/export.component.ts index 625188043ae..100f63015e5 100644 --- a/apps/web/src/app/tools/import-export/export.component.ts +++ b/apps/web/src/app/tools/import-export/export.component.ts @@ -9,7 +9,7 @@ import { FileDownloadService } from "@bitwarden/common/abstractions/fileDownload import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; @Component({ diff --git a/apps/web/src/app/tools/import-export/import.component.ts b/apps/web/src/app/tools/import-export/import.component.ts index 540872daf99..86ef671f21b 100644 --- a/apps/web/src/app/tools/import-export/import.component.ts +++ b/apps/web/src/app/tools/import-export/import.component.ts @@ -7,7 +7,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { ImportService } from "@bitwarden/common/abstractions/import.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { ImportOption, ImportType } from "@bitwarden/common/enums/importOptions"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/apps/web/src/app/vault/add-edit.component.ts b/apps/web/src/app/vault/add-edit.component.ts index 45afad6b583..4b89162803e 100644 --- a/apps/web/src/app/vault/add-edit.component.ts +++ b/apps/web/src/app/vault/add-edit.component.ts @@ -13,7 +13,7 @@ import { OrganizationService } from "@bitwarden/common/abstractions/organization import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { TotpService } from "@bitwarden/common/abstractions/totp.service"; import { CipherType } from "@bitwarden/common/enums/cipherType"; diff --git a/libs/angular/src/components/add-edit.component.ts b/libs/angular/src/components/add-edit.component.ts index da7862cc017..8f559dcbe7f 100644 --- a/libs/angular/src/components/add-edit.component.ts +++ b/libs/angular/src/components/add-edit.component.ts @@ -12,7 +12,7 @@ import { MessagingService } from "@bitwarden/common/abstractions/messaging.servi import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; import { PasswordRepromptService } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { CipherRepromptType } from "@bitwarden/common/enums/cipherRepromptType"; import { CipherType } from "@bitwarden/common/enums/cipherType"; diff --git a/libs/angular/src/components/change-password.component.ts b/libs/angular/src/components/change-password.component.ts index f513af5b85f..b4e2febbf42 100644 --- a/libs/angular/src/components/change-password.component.ts +++ b/libs/angular/src/components/change-password.component.ts @@ -5,7 +5,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { KdfType } from "@bitwarden/common/enums/kdfType"; import { EncString } from "@bitwarden/common/models/domain/encString"; diff --git a/libs/angular/src/components/export.component.ts b/libs/angular/src/components/export.component.ts index fd33f33a76a..c2a6187f443 100644 --- a/libs/angular/src/components/export.component.ts +++ b/libs/angular/src/components/export.component.ts @@ -8,7 +8,7 @@ import { FileDownloadService } from "@bitwarden/common/abstractions/fileDownload import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; import { EventType } from "@bitwarden/common/enums/eventType"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/libs/angular/src/components/send/add-edit.component.ts b/libs/angular/src/components/send/add-edit.component.ts index 3fb1246575a..1124a9f8a37 100644 --- a/libs/angular/src/components/send/add-edit.component.ts +++ b/libs/angular/src/components/send/add-edit.component.ts @@ -6,7 +6,7 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; 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 { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/libs/angular/src/components/send/send.component.ts b/libs/angular/src/components/send/send.component.ts index b7d28917771..1fdd9cafd40 100644 --- a/libs/angular/src/components/send/send.component.ts +++ b/libs/angular/src/components/send/send.component.ts @@ -4,7 +4,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { SearchService } from "@bitwarden/common/abstractions/search.service"; import { SendService } from "@bitwarden/common/abstractions/send.service"; import { PolicyType } from "@bitwarden/common/enums/policyType"; diff --git a/libs/angular/src/components/set-password.component.ts b/libs/angular/src/components/set-password.component.ts index 3db85a65475..c8be720ae40 100644 --- a/libs/angular/src/components/set-password.component.ts +++ b/libs/angular/src/components/set-password.component.ts @@ -8,7 +8,8 @@ import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { HashPurpose } from "@bitwarden/common/enums/hashPurpose"; @@ -40,6 +41,7 @@ export class SetPasswordComponent extends BaseChangePasswordComponent { messagingService: MessagingService, passwordGenerationService: PasswordGenerationService, platformUtilsService: PlatformUtilsService, + private policyApiService: PolicyApiServiceAbstraction, policyService: PolicyService, protected router: Router, private apiService: ApiService, @@ -75,7 +77,7 @@ export class SetPasswordComponent extends BaseChangePasswordComponent { this.orgId = response.id; this.resetPasswordAutoEnroll = response.resetPasswordEnabled; this.enforcedPolicyOptions = - await this.policyService.getMasterPasswordPoliciesForInvitedUsers(this.orgId); + await this.policyApiService.getMasterPasswordPoliciesForInvitedUsers(this.orgId); } catch { this.platformUtilsService.showToast("error", null, this.i18nService.t("errorOccurred")); } diff --git a/libs/angular/src/components/settings/vault-timeout-input.component.ts b/libs/angular/src/components/settings/vault-timeout-input.component.ts index 639897b8e1f..6f620e5c3be 100644 --- a/libs/angular/src/components/settings/vault-timeout-input.component.ts +++ b/libs/angular/src/components/settings/vault-timeout-input.component.ts @@ -8,7 +8,7 @@ import { } from "@angular/forms"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { Policy } from "@bitwarden/common/models/domain/policy"; diff --git a/libs/angular/src/components/update-password.component.ts b/libs/angular/src/components/update-password.component.ts index 92bd476e721..bc6bbba9a7c 100644 --- a/libs/angular/src/components/update-password.component.ts +++ b/libs/angular/src/components/update-password.component.ts @@ -8,7 +8,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { UserVerificationService } from "@bitwarden/common/abstractions/userVerification.service"; import { VerificationType } from "@bitwarden/common/enums/verificationType"; diff --git a/libs/angular/src/components/update-temp-password.component.ts b/libs/angular/src/components/update-temp-password.component.ts index 11af9f22704..7f36abd9a60 100644 --- a/libs/angular/src/components/update-temp-password.component.ts +++ b/libs/angular/src/components/update-temp-password.component.ts @@ -7,7 +7,7 @@ import { LogService } from "@bitwarden/common/abstractions/log.service"; import { MessagingService } from "@bitwarden/common/abstractions/messaging.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { SyncService } from "@bitwarden/common/abstractions/sync.service"; import { EncString } from "@bitwarden/common/models/domain/encString"; diff --git a/libs/angular/src/modules/vault-filter/vault-filter.service.ts b/libs/angular/src/modules/vault-filter/vault-filter.service.ts index 38757d042c8..7fa98e84c7e 100644 --- a/libs/angular/src/modules/vault-filter/vault-filter.service.ts +++ b/libs/angular/src/modules/vault-filter/vault-filter.service.ts @@ -5,7 +5,7 @@ import { CipherService } from "@bitwarden/common/abstractions/cipher.service"; import { CollectionService } from "@bitwarden/common/abstractions/collection.service"; import { FolderService } from "@bitwarden/common/abstractions/folder/folder.service.abstraction"; import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { PolicyType } from "@bitwarden/common/enums/policyType"; import { ServiceUtils } from "@bitwarden/common/misc/serviceUtils"; diff --git a/libs/angular/src/services/jslib-services.module.ts b/libs/angular/src/services/jslib-services.module.ts index 419dfab6050..529b3b52faa 100644 --- a/libs/angular/src/services/jslib-services.module.ts +++ b/libs/angular/src/services/jslib-services.module.ts @@ -33,7 +33,11 @@ import { OrganizationService as OrganizationServiceAbstraction } from "@bitwarde import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PasswordRepromptService as PasswordRepromptServiceAbstraction } from "@bitwarden/common/abstractions/passwordReprompt.service"; import { PlatformUtilsService as PlatformUtilsServiceAbstraction } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { + PolicyService as PolicyServiceAbstraction, + InternalPolicyService, +} from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { ProviderService as ProviderServiceAbstraction } from "@bitwarden/common/abstractions/provider.service"; import { SearchService as SearchServiceAbstraction } from "@bitwarden/common/abstractions/search.service"; import { SendService as SendServiceAbstraction } from "@bitwarden/common/abstractions/send.service"; @@ -73,7 +77,8 @@ import { KeyConnectorService } from "@bitwarden/common/services/keyConnector.ser import { NotificationsService } from "@bitwarden/common/services/notifications.service"; import { OrganizationService } from "@bitwarden/common/services/organization.service"; import { PasswordGenerationService } from "@bitwarden/common/services/passwordGeneration.service"; -import { PolicyService } from "@bitwarden/common/services/policy.service"; +import { PolicyApiService } from "@bitwarden/common/services/policy/policy-api.service"; +import { PolicyService } from "@bitwarden/common/services/policy/policy.service"; import { ProviderService } from "@bitwarden/common/services/provider.service"; import { SearchService } from "@bitwarden/common/services/search.service"; import { SendService } from "@bitwarden/common/services/send.service"; @@ -426,7 +431,21 @@ export const LOG_MAC_FAILURES = new InjectionToken("LOG_MAC_FAILURES"); { provide: PolicyServiceAbstraction, useClass: PolicyService, - deps: [StateServiceAbstraction, OrganizationServiceAbstraction, ApiServiceAbstraction], + deps: [StateServiceAbstraction, OrganizationServiceAbstraction], + }, + { + provide: InternalPolicyService, + useExisting: PolicyServiceAbstraction, + }, + { + provide: PolicyApiServiceAbstraction, + useClass: PolicyApiService, + deps: [ + PolicyServiceAbstraction, + ApiServiceAbstraction, + StateServiceAbstraction, + OrganizationServiceAbstraction, + ], }, { provide: SendServiceAbstraction, diff --git a/libs/common/src/abstractions/api.service.ts b/libs/common/src/abstractions/api.service.ts index 0fad466b95f..8599309836f 100644 --- a/libs/common/src/abstractions/api.service.ts +++ b/libs/common/src/abstractions/api.service.ts @@ -1,6 +1,5 @@ import { OrganizationApiKeyType } from "../enums/organizationApiKeyType"; import { OrganizationConnectionType } from "../enums/organizationConnectionType"; -import { PolicyType } from "../enums/policyType"; import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; import { AttachmentRequest } from "../models/request/attachmentRequest"; @@ -59,7 +58,6 @@ import { OrganizationUserUpdateRequest } from "../models/request/organizationUse import { PasswordHintRequest } from "../models/request/passwordHintRequest"; import { PasswordRequest } from "../models/request/passwordRequest"; import { PaymentRequest } from "../models/request/paymentRequest"; -import { PolicyRequest } from "../models/request/policyRequest"; import { PreloginRequest } from "../models/request/preloginRequest"; import { ProviderAddOrganizationRequest } from "../models/request/provider/providerAddOrganizationRequest"; import { ProviderOrganizationCreateRequest } from "../models/request/provider/providerOrganizationCreateRequest"; @@ -366,24 +364,6 @@ export abstract class ApiService { deleteGroup: (organizationId: string, id: string) => Promise; deleteGroupUser: (organizationId: string, id: string, organizationUserId: string) => Promise; - getPolicy: (organizationId: string, type: PolicyType) => Promise; - getPolicies: (organizationId: string) => Promise>; - getPoliciesByToken: ( - organizationId: string, - token: string, - email: string, - organizationUserId: string - ) => Promise>; - getPoliciesByInvitedUser: ( - organizationId: string, - userId: string - ) => Promise>; - putPolicy: ( - organizationId: string, - type: PolicyType, - request: PolicyRequest - ) => Promise; - getOrganizationUser: ( organizationId: string, id: string diff --git a/libs/common/src/abstractions/policy/policy-api.service.abstraction.ts b/libs/common/src/abstractions/policy/policy-api.service.abstraction.ts new file mode 100644 index 00000000000..fb9c4dcd102 --- /dev/null +++ b/libs/common/src/abstractions/policy/policy-api.service.abstraction.ts @@ -0,0 +1,24 @@ +import { PolicyType } from "@bitwarden/common/enums/policyType"; +import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; +import { Policy } from "@bitwarden/common/models/domain/policy"; +import { PolicyRequest } from "@bitwarden/common/models/request/policyRequest"; +import { ListResponse } from "@bitwarden/common/models/response/listResponse"; +import { PolicyResponse } from "@bitwarden/common/models/response/policyResponse"; + +export class PolicyApiServiceAbstraction { + getPolicy: (organizationId: string, type: PolicyType) => Promise; + getPolicies: (organizationId: string) => Promise>; + getPoliciesByToken: ( + organizationId: string, + token: string, + email: string, + organizationUserId: string + ) => Promise>; + getPoliciesByInvitedUser: ( + organizationId: string, + userId: string + ) => Promise>; + getPolicyForOrganization: (policyType: PolicyType, organizationId: string) => Promise; + getMasterPasswordPoliciesForInvitedUsers: (orgId: string) => Promise; + putPolicy: (organizationId: string, type: PolicyType, request: PolicyRequest) => Promise; +} diff --git a/libs/common/src/abstractions/policy.service.ts b/libs/common/src/abstractions/policy/policy.service.abstraction.ts similarity index 54% rename from libs/common/src/abstractions/policy.service.ts rename to libs/common/src/abstractions/policy/policy.service.abstraction.ts index 24dcc9965b6..67517d965d7 100644 --- a/libs/common/src/abstractions/policy.service.ts +++ b/libs/common/src/abstractions/policy/policy.service.abstraction.ts @@ -1,18 +1,14 @@ -import { PolicyType } from "../enums/policyType"; -import { PolicyData } from "../models/data/policyData"; -import { MasterPasswordPolicyOptions } from "../models/domain/masterPasswordPolicyOptions"; -import { Policy } from "../models/domain/policy"; -import { ResetPasswordPolicyOptions } from "../models/domain/resetPasswordPolicyOptions"; -import { ListResponse } from "../models/response/listResponse"; -import { PolicyResponse } from "../models/response/policyResponse"; +import { PolicyType } from "../../enums/policyType"; +import { PolicyData } from "../../models/data/policyData"; +import { MasterPasswordPolicyOptions } from "../../models/domain/masterPasswordPolicyOptions"; +import { Policy } from "../../models/domain/policy"; +import { ResetPasswordPolicyOptions } from "../../models/domain/resetPasswordPolicyOptions"; +import { ListResponse } from "../../models/response/listResponse"; +import { PolicyResponse } from "../../models/response/policyResponse"; export abstract class PolicyService { - clearCache: () => void; getAll: (type?: PolicyType, userId?: string) => Promise; - getPolicyForOrganization: (policyType: PolicyType, organizationId: string) => Promise; - replace: (policies: { [id: string]: PolicyData }) => Promise; - clear: (userId?: string) => Promise; - getMasterPasswordPoliciesForInvitedUsers: (orgId: string) => Promise; + getMasterPasswordPolicyOptions: (policies?: Policy[]) => Promise; evaluateMasterPassword: ( passwordStrength: number, @@ -30,3 +26,9 @@ export abstract class PolicyService { userId?: string ) => Promise; } + +export abstract class InternalPolicyService extends PolicyService { + upsert: (policy: PolicyData) => Promise; + replace: (policies: { [id: string]: PolicyData }) => Promise; + clear: (userId?: string) => Promise; +} diff --git a/libs/common/src/services/api.service.ts b/libs/common/src/services/api.service.ts index ff6a4ca1145..a68f06e97ee 100644 --- a/libs/common/src/services/api.service.ts +++ b/libs/common/src/services/api.service.ts @@ -6,7 +6,6 @@ import { TokenService } from "../abstractions/token.service"; import { DeviceType } from "../enums/deviceType"; import { OrganizationApiKeyType } from "../enums/organizationApiKeyType"; import { OrganizationConnectionType } from "../enums/organizationConnectionType"; -import { PolicyType } from "../enums/policyType"; import { Utils } from "../misc/utils"; import { SetKeyConnectorKeyRequest } from "../models/request/account/setKeyConnectorKeyRequest"; import { VerifyOTPRequest } from "../models/request/account/verifyOTPRequest"; @@ -67,7 +66,6 @@ import { OrganizationUserUpdateRequest } from "../models/request/organizationUse import { PasswordHintRequest } from "../models/request/passwordHintRequest"; import { PasswordRequest } from "../models/request/passwordRequest"; import { PaymentRequest } from "../models/request/paymentRequest"; -import { PolicyRequest } from "../models/request/policyRequest"; import { PreloginRequest } from "../models/request/preloginRequest"; import { ProviderAddOrganizationRequest } from "../models/request/provider/providerAddOrganizationRequest"; import { ProviderOrganizationCreateRequest } from "../models/request/provider/providerOrganizationCreateRequest"; @@ -1024,83 +1022,6 @@ export class ApiService implements ApiServiceAbstraction { ); } - // Policy APIs - - async getPolicy(organizationId: string, type: PolicyType): Promise { - const r = await this.send( - "GET", - "/organizations/" + organizationId + "/policies/" + type, - null, - true, - true - ); - return new PolicyResponse(r); - } - - async getPolicies(organizationId: string): Promise> { - const r = await this.send( - "GET", - "/organizations/" + organizationId + "/policies", - null, - true, - true - ); - return new ListResponse(r, PolicyResponse); - } - - async getPoliciesByToken( - organizationId: string, - token: string, - email: string, - organizationUserId: string - ): Promise> { - const r = await this.send( - "GET", - "/organizations/" + - organizationId + - "/policies/token?" + - "token=" + - encodeURIComponent(token) + - "&email=" + - encodeURIComponent(email) + - "&organizationUserId=" + - organizationUserId, - null, - false, - true - ); - return new ListResponse(r, PolicyResponse); - } - - async getPoliciesByInvitedUser( - organizationId: string, - userId: string - ): Promise> { - const r = await this.send( - "GET", - "/organizations/" + organizationId + "/policies/invited-user?" + "userId=" + userId, - null, - false, - true - ); - return new ListResponse(r, PolicyResponse); - } - - async putPolicy( - organizationId: string, - type: PolicyType, - request: PolicyRequest - ): Promise { - const r = await this.send( - "PUT", - "/organizations/" + organizationId + "/policies/" + type, - request, - true, - true - ); - return new PolicyResponse(r); - } - // Organization User APIs async getOrganizationUser( diff --git a/libs/common/src/services/passwordGeneration.service.ts b/libs/common/src/services/passwordGeneration.service.ts index f9e8836a28b..cf2a2ab5bf5 100644 --- a/libs/common/src/services/passwordGeneration.service.ts +++ b/libs/common/src/services/passwordGeneration.service.ts @@ -2,7 +2,7 @@ import * as zxcvbn from "zxcvbn"; import { CryptoService } from "../abstractions/crypto.service"; import { PasswordGenerationService as PasswordGenerationServiceAbstraction } from "../abstractions/passwordGeneration.service"; -import { PolicyService } from "../abstractions/policy.service"; +import { PolicyService } from "../abstractions/policy/policy.service.abstraction"; import { StateService } from "../abstractions/state.service"; import { PolicyType } from "../enums/policyType"; import { EEFLongWordList } from "../misc/wordlist"; diff --git a/libs/common/src/services/policy/policy-api.service.ts b/libs/common/src/services/policy/policy-api.service.ts new file mode 100644 index 00000000000..777108571f3 --- /dev/null +++ b/libs/common/src/services/policy/policy-api.service.ts @@ -0,0 +1,120 @@ +import { ApiService } from "@bitwarden/common/abstractions/api.service"; +import { OrganizationService } from "@bitwarden/common/abstractions/organization.service"; +import { PolicyApiServiceAbstraction } from "@bitwarden/common/abstractions/policy/policy-api.service.abstraction"; +import { InternalPolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; +import { StateService } from "@bitwarden/common/abstractions/state.service"; +import { PolicyType } from "@bitwarden/common/enums/policyType"; +import { PolicyData } from "@bitwarden/common/models/data/policyData"; +import { MasterPasswordPolicyOptions } from "@bitwarden/common/models/domain/masterPasswordPolicyOptions"; +import { Policy } from "@bitwarden/common/models/domain/policy"; +import { PolicyRequest } from "@bitwarden/common/models/request/policyRequest"; +import { ListResponse } from "@bitwarden/common/models/response/listResponse"; +import { PolicyResponse } from "@bitwarden/common/models/response/policyResponse"; + +export class PolicyApiService implements PolicyApiServiceAbstraction { + constructor( + private policyService: InternalPolicyService, + private apiService: ApiService, + private stateService: StateService, + private organizationService: OrganizationService + ) {} + + async getPolicy(organizationId: string, type: PolicyType): Promise { + const r = await this.apiService.send( + "GET", + "/organizations/" + organizationId + "/policies/" + type, + null, + true, + true + ); + return new PolicyResponse(r); + } + + async getPolicies(organizationId: string): Promise> { + const r = await this.apiService.send( + "GET", + "/organizations/" + organizationId + "/policies", + null, + true, + true + ); + return new ListResponse(r, PolicyResponse); + } + + async getPoliciesByToken( + organizationId: string, + token: string, + email: string, + organizationUserId: string + ): Promise> { + const r = await this.apiService.send( + "GET", + "/organizations/" + + organizationId + + "/policies/token?" + + "token=" + + encodeURIComponent(token) + + "&email=" + + encodeURIComponent(email) + + "&organizationUserId=" + + organizationUserId, + null, + false, + true + ); + return new ListResponse(r, PolicyResponse); + } + + async getPoliciesByInvitedUser( + organizationId: string, + userId: string + ): Promise> { + const r = await this.apiService.send( + "GET", + "/organizations/" + organizationId + "/policies/invited-user?" + "userId=" + userId, + null, + false, + true + ); + return new ListResponse(r, PolicyResponse); + } + + async getPolicyForOrganization(policyType: PolicyType, organizationId: string): Promise { + const org = await this.organizationService.get(organizationId); + if (org?.isProviderUser) { + const orgPolicies = await this.getPolicies(organizationId); + const policy = orgPolicies.data.find((p) => p.organizationId === organizationId); + + if (policy == null) { + return null; + } + + return new Policy(new PolicyData(policy)); + } + + const policies = await this.policyService.getAll(policyType); + return policies.find((p) => p.organizationId === organizationId); + } + + async getMasterPasswordPoliciesForInvitedUsers( + orgId: string + ): Promise { + const userId = await this.stateService.getUserId(); + const response = await this.getPoliciesByInvitedUser(orgId, userId); + const policies = await this.policyService.mapPoliciesFromToken(response); + return this.policyService.getMasterPasswordPolicyOptions(policies); + } + + async putPolicy(organizationId: string, type: PolicyType, request: PolicyRequest): Promise { + const r = await this.apiService.send( + "PUT", + "/organizations/" + organizationId + "/policies/" + type, + request, + true, + true + ); + const response = new PolicyResponse(r); + const data = new PolicyData(response); + await this.policyService.upsert(data); + } +} diff --git a/libs/common/src/services/policy.service.ts b/libs/common/src/services/policy/policy.service.ts similarity index 73% rename from libs/common/src/services/policy.service.ts rename to libs/common/src/services/policy/policy.service.ts index 91ab864b376..dcc3b3686ac 100644 --- a/libs/common/src/services/policy.service.ts +++ b/libs/common/src/services/policy/policy.service.ts @@ -1,31 +1,25 @@ -import { ApiService } from "../abstractions/api.service"; -import { OrganizationService } from "../abstractions/organization.service"; -import { PolicyService as PolicyServiceAbstraction } from "../abstractions/policy.service"; -import { StateService } from "../abstractions/state.service"; -import { OrganizationUserStatusType } from "../enums/organizationUserStatusType"; -import { OrganizationUserType } from "../enums/organizationUserType"; -import { PolicyType } from "../enums/policyType"; -import { PolicyData } from "../models/data/policyData"; -import { MasterPasswordPolicyOptions } from "../models/domain/masterPasswordPolicyOptions"; -import { Organization } from "../models/domain/organization"; -import { Policy } from "../models/domain/policy"; -import { ResetPasswordPolicyOptions } from "../models/domain/resetPasswordPolicyOptions"; -import { ListResponse } from "../models/response/listResponse"; -import { PolicyResponse } from "../models/response/policyResponse"; +import { OrganizationService } from "../../abstractions/organization.service"; +import { InternalPolicyService as InternalPolicyServiceAbstraction } from "../../abstractions/policy/policy.service.abstraction"; +import { StateService } from "../../abstractions/state.service"; +import { OrganizationUserStatusType } from "../../enums/organizationUserStatusType"; +import { OrganizationUserType } from "../../enums/organizationUserType"; +import { PolicyType } from "../../enums/policyType"; +import { PolicyData } from "../../models/data/policyData"; +import { MasterPasswordPolicyOptions } from "../../models/domain/masterPasswordPolicyOptions"; +import { Organization } from "../../models/domain/organization"; +import { Policy } from "../../models/domain/policy"; +import { ResetPasswordPolicyOptions } from "../../models/domain/resetPasswordPolicyOptions"; +import { ListResponse } from "../../models/response/listResponse"; +import { PolicyResponse } from "../../models/response/policyResponse"; -export class PolicyService implements PolicyServiceAbstraction { +export class PolicyService implements InternalPolicyServiceAbstraction { policyCache: Policy[]; constructor( private stateService: StateService, - private organizationService: OrganizationService, - private apiService: ApiService + private organizationService: OrganizationService ) {} - async clearCache(): Promise { - await this.stateService.setDecryptedPolicies(null); - } - async getAll(type?: PolicyType, userId?: string): Promise { let response: Policy[] = []; const decryptedPolicies = await this.stateService.getDecryptedPolicies({ userId: userId }); @@ -48,42 +42,6 @@ export class PolicyService implements PolicyServiceAbstraction { } } - async getPolicyForOrganization(policyType: PolicyType, organizationId: string): Promise { - const org = await this.organizationService.get(organizationId); - if (org?.isProviderUser) { - const orgPolicies = await this.apiService.getPolicies(organizationId); - const policy = orgPolicies.data.find((p) => p.organizationId === organizationId); - - if (policy == null) { - return null; - } - - return new Policy(new PolicyData(policy)); - } - - const policies = await this.getAll(policyType); - return policies.find((p) => p.organizationId === organizationId); - } - - async replace(policies: { [id: string]: PolicyData }): Promise { - await this.stateService.setDecryptedPolicies(null); - await this.stateService.setEncryptedPolicies(policies); - } - - async clear(userId?: string): Promise { - await this.stateService.setDecryptedPolicies(null, { userId: userId }); - await this.stateService.setEncryptedPolicies(null, { userId: userId }); - } - - async getMasterPasswordPoliciesForInvitedUsers( - orgId: string - ): Promise { - const userId = await this.stateService.getUserId(); - const response = await this.apiService.getPoliciesByInvitedUser(orgId, userId); - const policies = await this.mapPoliciesFromToken(response); - return this.getMasterPasswordPolicyOptions(policies); - } - async getMasterPasswordPolicyOptions(policies?: Policy[]): Promise { let enforcedOptions: MasterPasswordPolicyOptions = null; @@ -237,6 +195,28 @@ export class PolicyService implements PolicyServiceAbstraction { ); } + async upsert(policy: PolicyData): Promise { + let policies = await this.stateService.getEncryptedPolicies(); + if (policies == null) { + policies = {}; + } + + policies[policy.id] = policy; + + await this.stateService.setDecryptedPolicies(null); + await this.stateService.setEncryptedPolicies(policies); + } + + async replace(policies: { [id: string]: PolicyData }): Promise { + await this.stateService.setDecryptedPolicies(null); + await this.stateService.setEncryptedPolicies(policies); + } + + async clear(userId?: string): Promise { + await this.stateService.setDecryptedPolicies(null, { userId: userId }); + await this.stateService.setEncryptedPolicies(null, { userId: userId }); + } + private isExcemptFromPolicies(organization: Organization, policyType: PolicyType) { if (policyType === PolicyType.MaximumVaultTimeout) { return organization.type === OrganizationUserType.Owner; diff --git a/libs/common/src/services/sync.service.ts b/libs/common/src/services/sync.service.ts index b96ff24d392..4776bc97f15 100644 --- a/libs/common/src/services/sync.service.ts +++ b/libs/common/src/services/sync.service.ts @@ -8,7 +8,7 @@ import { KeyConnectorService } from "../abstractions/keyConnector.service"; import { LogService } from "../abstractions/log.service"; import { MessagingService } from "../abstractions/messaging.service"; import { OrganizationService } from "../abstractions/organization.service"; -import { PolicyService } from "../abstractions/policy.service"; +import { InternalPolicyService } from "../abstractions/policy/policy.service.abstraction"; import { ProviderService } from "../abstractions/provider.service"; import { SendService } from "../abstractions/send.service"; import { SettingsService } from "../abstractions/settings.service"; @@ -46,7 +46,7 @@ export class SyncService implements SyncServiceAbstraction { private cryptoService: CryptoService, private collectionService: CollectionService, private messagingService: MessagingService, - private policyService: PolicyService, + private policyService: InternalPolicyService, private sendService: SendService, private logService: LogService, private keyConnectorService: KeyConnectorService, diff --git a/libs/common/src/services/vaultTimeout.service.ts b/libs/common/src/services/vaultTimeout.service.ts index ae94000095c..95ee8ded48c 100644 --- a/libs/common/src/services/vaultTimeout.service.ts +++ b/libs/common/src/services/vaultTimeout.service.ts @@ -6,7 +6,7 @@ import { FolderService } from "../abstractions/folder/folder.service.abstraction import { KeyConnectorService } from "../abstractions/keyConnector.service"; import { MessagingService } from "../abstractions/messaging.service"; import { PlatformUtilsService } from "../abstractions/platformUtils.service"; -import { PolicyService } from "../abstractions/policy.service"; +import { PolicyService } from "../abstractions/policy/policy.service.abstraction"; import { SearchService } from "../abstractions/search.service"; import { StateService } from "../abstractions/state.service"; import { TokenService } from "../abstractions/token.service"; diff --git a/libs/node/src/cli/commands/login.command.ts b/libs/node/src/cli/commands/login.command.ts index 9d242113648..b38d13011e8 100644 --- a/libs/node/src/cli/commands/login.command.ts +++ b/libs/node/src/cli/commands/login.command.ts @@ -12,7 +12,7 @@ import { EnvironmentService } from "@bitwarden/common/abstractions/environment.s import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { PasswordGenerationService } from "@bitwarden/common/abstractions/passwordGeneration.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; -import { PolicyService } from "@bitwarden/common/abstractions/policy.service"; +import { PolicyService } from "@bitwarden/common/abstractions/policy/policy.service.abstraction"; import { StateService } from "@bitwarden/common/abstractions/state.service"; import { TwoFactorService } from "@bitwarden/common/abstractions/twoFactor.service"; import { TwoFactorProviderType } from "@bitwarden/common/enums/twoFactorProviderType";