From 65074b0d12d261d99c1c7f420a92069a20a2e144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Mon, 28 Oct 2024 14:52:45 +0100 Subject: [PATCH 01/16] Initialize SDK even when orgKeys is null (#11748) --- .../src/platform/services/sdk/default-sdk.service.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libs/common/src/platform/services/sdk/default-sdk.service.ts b/libs/common/src/platform/services/sdk/default-sdk.service.ts index adea07becc7..a1617315448 100644 --- a/libs/common/src/platform/services/sdk/default-sdk.service.ts +++ b/libs/common/src/platform/services/sdk/default-sdk.service.ts @@ -96,7 +96,7 @@ export class DefaultSdkService implements SdkService { let client: BitwardenClient; const createAndInitializeClient = async () => { - if (privateKey == null || userKey == null || orgKeys == null) { + if (privateKey == null || userKey == null) { return undefined; } @@ -150,7 +150,7 @@ export class DefaultSdkService implements SdkService { kdfParams: KdfConfig, privateKey: EncryptedString, userKey: UserKey, - orgKeys: Record, + orgKeys?: Record, ) { await client.crypto().initialize_user_crypto({ email: account.email, @@ -169,9 +169,12 @@ export class DefaultSdkService implements SdkService { }, privateKey, }); + + // We initialize the org crypto even if the org_keys are + // null to make sure any existing org keys are cleared. await client.crypto().initialize_org_crypto({ organizationKeys: new Map( - Object.entries(orgKeys) + Object.entries(orgKeys ?? {}) .filter(([_, v]) => v.type === "organization") .map(([k, v]) => [k, v.key]), ), From 3f3f5cb7f0b3f922153612f5b185bd0d0de8ec41 Mon Sep 17 00:00:00 2001 From: watsondm <129207532+watsondm@users.noreply.github.com> Date: Mon, 28 Oct 2024 10:43:26 -0400 Subject: [PATCH 02/16] SRE-1060 Add usdev to additional regions config (#11612) --- apps/web/config/usdev.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/apps/web/config/usdev.json b/apps/web/config/usdev.json index af96a38c6af..c19deba27b1 100644 --- a/apps/web/config/usdev.json +++ b/apps/web/config/usdev.json @@ -4,6 +4,15 @@ "notifications": "https://notifications.usdev.bitwarden.pw", "scim": "https://scim.usdev.bitwarden.pw" }, + "additionalRegions": [ + { + "key": "USDEV", + "domain": "usdev.bitwarden.pw", + "urls": { + "webVault": "https://vault.usdev.bitwarden.pw" + } + } + ], "flags": { "showPasswordless": true } From f4dfd042bb68f1de28beea55aeddebd86eae7acd Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:12:43 -0400 Subject: [PATCH 03/16] [deps]: Update uuid to v11 (#11737) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../native-messaging-test-runner/package-lock.json | 10 +++++----- apps/desktop/native-messaging-test-runner/package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/desktop/native-messaging-test-runner/package-lock.json b/apps/desktop/native-messaging-test-runner/package-lock.json index b243b51acc9..3b37ecb5f4d 100644 --- a/apps/desktop/native-messaging-test-runner/package-lock.json +++ b/apps/desktop/native-messaging-test-runner/package-lock.json @@ -14,7 +14,7 @@ "module-alias": "2.2.3", "node-ipc": "9.2.1", "ts-node": "10.9.2", - "uuid": "10.0.0", + "uuid": "11.0.1", "yargs": "17.7.2" }, "devDependencies": { @@ -421,16 +421,16 @@ "license": "MIT" }, "node_modules/uuid": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz", - "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.0.1.tgz", + "integrity": "sha512-wt9UB5EcLhnboy1UvA1mvGPXkIIrHSu+3FmUksARfdVw9tuPf3CH/CohxO0Su1ApoKAeT6BVzAJIvjTuQVSmuQ==", "funding": [ "https://github.com/sponsors/broofa", "https://github.com/sponsors/ctavan" ], "license": "MIT", "bin": { - "uuid": "dist/bin/uuid" + "uuid": "dist/esm/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { diff --git a/apps/desktop/native-messaging-test-runner/package.json b/apps/desktop/native-messaging-test-runner/package.json index ccd480e31b6..ad657d0a98f 100644 --- a/apps/desktop/native-messaging-test-runner/package.json +++ b/apps/desktop/native-messaging-test-runner/package.json @@ -19,7 +19,7 @@ "module-alias": "2.2.3", "node-ipc": "9.2.1", "ts-node": "10.9.2", - "uuid": "10.0.0", + "uuid": "11.0.1", "yargs": "17.7.2" }, "devDependencies": { From dd653b5269f469fe97f3e00f0e2a158a8088e24c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:13:21 -0400 Subject: [PATCH 04/16] [deps] Autofill: Update tldts to v6.1.56 (#11728) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- apps/cli/package.json | 2 +- package-lock.json | 18 +++++++++--------- package.json | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/cli/package.json b/apps/cli/package.json index 55bcee689d0..fb9f682f961 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -80,7 +80,7 @@ "papaparse": "5.4.1", "proper-lockfile": "4.1.2", "rxjs": "7.8.1", - "tldts": "6.1.52", + "tldts": "6.1.56", "zxcvbn": "4.4.2" } } diff --git a/package-lock.json b/package-lock.json index f60ec732132..a92dd243112 100644 --- a/package-lock.json +++ b/package-lock.json @@ -68,7 +68,7 @@ "qrious": "4.0.2", "rxjs": "7.8.1", "tabbable": "6.2.0", - "tldts": "6.1.52", + "tldts": "6.1.56", "utf-8-validate": "6.0.4", "zone.js": "0.13.3", "zxcvbn": "4.4.2" @@ -225,7 +225,7 @@ "papaparse": "5.4.1", "proper-lockfile": "4.1.2", "rxjs": "7.8.1", - "tldts": "6.1.52", + "tldts": "6.1.56", "zxcvbn": "4.4.2" }, "bin": { @@ -36439,21 +36439,21 @@ } }, "node_modules/tldts": { - "version": "6.1.52", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.52.tgz", - "integrity": "sha512-fgrDJXDjbAverY6XnIt0lNfv8A0cf7maTEaZxNykLGsLG7XP+5xhjBTrt/ieAsFjAlZ+G5nmXomLcZDkxXnDzw==", + "version": "6.1.56", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.56.tgz", + "integrity": "sha512-2PT1oRZCxtsbLi5R2SQjE/v4vvgRggAtVcYj+3Rrcnu2nPZvu7m64+gDa/EsVSWd3QzEc0U0xN+rbEKsJC47kA==", "license": "MIT", "dependencies": { - "tldts-core": "^6.1.52" + "tldts-core": "^6.1.56" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "6.1.52", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.52.tgz", - "integrity": "sha512-j4OxQI5rc1Ve/4m/9o2WhWSC4jGc4uVbCINdOEJRAraCi0YqTqgMcxUx7DbmuP0G3PCixoof/RZB0Q5Kh9tagw==", + "version": "6.1.56", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.56.tgz", + "integrity": "sha512-Ihxv/Bwiyj73icTYVgBUkQ3wstlCglLoegSgl64oSrGUBX1hc7Qmf/CnrnJLaQdZrCnTaLqMYOwKMKlkfkFrxQ==", "license": "MIT" }, "node_modules/tmp": { diff --git a/package.json b/package.json index bf9c8b76735..77cf21e2bae 100644 --- a/package.json +++ b/package.json @@ -202,7 +202,7 @@ "qrious": "4.0.2", "rxjs": "7.8.1", "tabbable": "6.2.0", - "tldts": "6.1.52", + "tldts": "6.1.56", "utf-8-validate": "6.0.4", "zone.js": "0.13.3", "zxcvbn": "4.4.2" From db6c6a84cc69a1d1a607c37787b573bc5641e2de Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 11:13:54 -0400 Subject: [PATCH 05/16] [deps] Platform: Update @types/node to v20.17.1 (#11733) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- .../native-messaging-test-runner/package-lock.json | 8 ++++---- apps/desktop/native-messaging-test-runner/package.json | 2 +- package-lock.json | 8 ++++---- package.json | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/desktop/native-messaging-test-runner/package-lock.json b/apps/desktop/native-messaging-test-runner/package-lock.json index 3b37ecb5f4d..06c6cd1d2e5 100644 --- a/apps/desktop/native-messaging-test-runner/package-lock.json +++ b/apps/desktop/native-messaging-test-runner/package-lock.json @@ -18,7 +18,7 @@ "yargs": "17.7.2" }, "devDependencies": { - "@types/node": "20.16.11", + "@types/node": "20.17.1", "@types/node-ipc": "9.2.3", "typescript": "4.7.4" } @@ -106,9 +106,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.16.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", - "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "version": "20.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.1.tgz", + "integrity": "sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" diff --git a/apps/desktop/native-messaging-test-runner/package.json b/apps/desktop/native-messaging-test-runner/package.json index ad657d0a98f..0c38902ea4c 100644 --- a/apps/desktop/native-messaging-test-runner/package.json +++ b/apps/desktop/native-messaging-test-runner/package.json @@ -23,7 +23,7 @@ "yargs": "17.7.2" }, "devDependencies": { - "@types/node": "20.16.11", + "@types/node": "20.17.1", "@types/node-ipc": "9.2.3", "typescript": "4.7.4" }, diff --git a/package-lock.json b/package-lock.json index a92dd243112..be4bdd07f69 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,7 +110,7 @@ "@types/koa-json": "2.0.23", "@types/lowdb": "1.0.15", "@types/lunr": "2.3.7", - "@types/node": "20.16.11", + "@types/node": "20.17.1", "@types/node-fetch": "2.6.4", "@types/node-forge": "1.3.11", "@types/node-ipc": "9.2.3", @@ -9642,9 +9642,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.16.11", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.11.tgz", - "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", + "version": "20.17.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.1.tgz", + "integrity": "sha512-j2VlPv1NnwPJbaCNv69FO/1z4lId0QmGvpT41YxitRtWlg96g/j8qcv2RKsLKe2F6OJgyXhupN1Xo17b2m139Q==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 77cf21e2bae..a27397e61c6 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "@types/koa-json": "2.0.23", "@types/lowdb": "1.0.15", "@types/lunr": "2.3.7", - "@types/node": "20.16.11", + "@types/node": "20.17.1", "@types/node-fetch": "2.6.4", "@types/node-forge": "1.3.11", "@types/node-ipc": "9.2.3", From 2a956744bdb8057fb33c2b8fae6db277e0bc18a7 Mon Sep 17 00:00:00 2001 From: Brandon Treston Date: Mon, 28 Oct 2024 11:24:14 -0400 Subject: [PATCH 06/16] [PM-13645] Fix invite counter to check remaining number of seats in plan (#11577) * Fix invite counter to check remaining number of seats in plan * Remove redundant async pipe subscriptions --- .../member-dialog/member-dialog.component.html | 11 ++++++----- .../member-dialog/member-dialog.component.ts | 5 +++++ apps/web/src/locales/en/messages.json | 3 +++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.html b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.html index 2c5daf93c6f..a8ecf255f33 100644 --- a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.html +++ b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.html @@ -23,14 +23,15 @@

{{ "inviteUserDesc" | i18n }}

- + {{ "email" | i18n }} - {{ - "inviteMultipleEmailDesc" - | i18n - : (organization.productTierType === ProductTierType.TeamsStarter ? "10" : "20") + {{ + "inviteMultipleEmailDesc" | i18n: remainingSeats }} + + {{ "inviteSingleEmailDesc" | i18n: remainingSeats }} +
diff --git a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts index 8df40e35fef..4a95c9cb9cb 100644 --- a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts +++ b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts @@ -89,6 +89,7 @@ export class MemberDialogComponent implements OnDestroy { PermissionMode = PermissionMode; showNoMasterPasswordWarning = false; isOnSecretsManagerStandalone: boolean; + remainingSeats$: Observable; protected organization$: Observable; protected collectionAccessItems: AccessItemView[] = []; @@ -250,6 +251,10 @@ export class MemberDialogComponent implements OnDestroy { this.loading = false; }); + + this.remainingSeats$ = this.organization$.pipe( + map((organization) => organization.seats - this.params.numConfirmedMembers), + ); } private setFormValidators(organization: Organization) { diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index 9ea33149de8..dc1722bc7a8 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -3214,6 +3214,9 @@ } } }, + "inviteSingleEmailDesc": { + "message": "You have 1 invite remaining." + }, "userUsingTwoStep": { "message": "This user is using two-step login to protect their account." }, From f86bc9bf28af22dc39123316f4aa8921d90498b3 Mon Sep 17 00:00:00 2001 From: Brandon Treston Date: Mon, 28 Oct 2024 11:58:16 -0400 Subject: [PATCH 07/16] [PM-13651] migrate verify recover delete provider component (#11586) * Refactor VerifyRevocerDeleteProvider component to use component library * Remove components form loose-components.module * Refactor submit function definition into expression * Move module out of oss, implement AnonLayoutComponentWrapper route * Add type to button * Remove try/catch with error logging * remove logger service, remove formPromise field --- ...ify-recover-delete-provider.component.html | 34 ------------------- apps/web/src/app/oss-routing.module.ts | 7 ---- .../src/app/shared/loose-components.module.ts | 6 ---- .../providers/providers-routing.module.ts | 2 +- .../providers/providers.component.html | 0 .../providers/providers.component.ts | 0 .../providers/providers.module.ts | 4 +++ ...ify-recover-delete-provider.component.html | 15 ++++++++ ...erify-recover-delete-provider.component.ts | 33 ++++++------------ .../bit-web/src/app/app-routing.module.ts | 16 +++++++++ 10 files changed, 46 insertions(+), 71 deletions(-) delete mode 100644 apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.html rename {apps/web => bitwarden_license/bit-web}/src/app/admin-console/providers/providers.component.html (100%) rename {apps/web => bitwarden_license/bit-web}/src/app/admin-console/providers/providers.component.ts (100%) create mode 100644 bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.html rename {apps/web => bitwarden_license/bit-web}/src/app/admin-console/providers/verify-recover-delete-provider.component.ts (63%) diff --git a/apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.html b/apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.html deleted file mode 100644 index a287a537a4d..00000000000 --- a/apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.html +++ /dev/null @@ -1,34 +0,0 @@ -
-
-
-

{{ "deleteProvider" | i18n }}

-
-
- {{ "deleteProviderWarning" | i18n }} -

- {{ name }} -

-

{{ "deleteProviderRecoverConfirmDesc" | i18n }}

-
-
- - - {{ "cancel" | i18n }} - -
-
-
-
-
-
diff --git a/apps/web/src/app/oss-routing.module.ts b/apps/web/src/app/oss-routing.module.ts index b3a8db20028..71d26030b03 100644 --- a/apps/web/src/app/oss-routing.module.ts +++ b/apps/web/src/app/oss-routing.module.ts @@ -40,7 +40,6 @@ import { flagEnabled, Flags } from "../utils/flags"; import { VerifyRecoverDeleteOrgComponent } from "./admin-console/organizations/manage/verify-recover-delete-org.component"; import { AcceptFamilySponsorshipComponent } from "./admin-console/organizations/sponsorships/accept-family-sponsorship.component"; import { FamiliesForEnterpriseSetupComponent } from "./admin-console/organizations/sponsorships/families-for-enterprise-setup.component"; -import { VerifyRecoverDeleteProviderComponent } from "./admin-console/providers/verify-recover-delete-provider.component"; import { CreateOrganizationComponent } from "./admin-console/settings/create-organization.component"; import { deepLinkGuard } from "./auth/guards/deep-link.guard"; import { HintComponent } from "./auth/hint.component"; @@ -156,12 +155,6 @@ const routes: Routes = [ canActivate: [unauthGuardFn()], data: { titleId: "deleteOrganization" }, }, - { - path: "verify-recover-delete-provider", - component: VerifyRecoverDeleteProviderComponent, - canActivate: [unauthGuardFn()], - data: { titleId: "deleteAccount" } satisfies RouteDataProperties, - }, { path: "update-temp-password", component: UpdateTempPasswordComponent, diff --git a/apps/web/src/app/shared/loose-components.module.ts b/apps/web/src/app/shared/loose-components.module.ts index 638a523cd4f..a238f2110ce 100644 --- a/apps/web/src/app/shared/loose-components.module.ts +++ b/apps/web/src/app/shared/loose-components.module.ts @@ -17,8 +17,6 @@ import { InactiveTwoFactorReportComponent as OrgInactiveTwoFactorReportComponent import { ReusedPasswordsReportComponent as OrgReusedPasswordsReportComponent } from "../admin-console/organizations/tools/reused-passwords-report.component"; import { UnsecuredWebsitesReportComponent as OrgUnsecuredWebsitesReportComponent } from "../admin-console/organizations/tools/unsecured-websites-report.component"; import { WeakPasswordsReportComponent as OrgWeakPasswordsReportComponent } from "../admin-console/organizations/tools/weak-passwords-report.component"; -import { ProvidersComponent } from "../admin-console/providers/providers.component"; -import { VerifyRecoverDeleteProviderComponent } from "../admin-console/providers/verify-recover-delete-provider.component"; import { HintComponent } from "../auth/hint.component"; import { RecoverDeleteComponent } from "../auth/recover-delete.component"; import { RecoverTwoFactorComponent } from "../auth/recover-two-factor.component"; @@ -149,7 +147,6 @@ import { SharedModule } from "./shared.module"; PremiumBadgeComponent, ProfileComponent, ChangeAvatarDialogComponent, - ProvidersComponent, PurgeVaultComponent, RecoverDeleteComponent, RecoverTwoFactorComponent, @@ -176,7 +173,6 @@ import { SharedModule } from "./shared.module"; UpdateTempPasswordComponent, VerifyEmailTokenComponent, VerifyRecoverDeleteComponent, - VerifyRecoverDeleteProviderComponent, ], exports: [ UserVerificationModule, @@ -218,7 +214,6 @@ import { SharedModule } from "./shared.module"; PremiumBadgeComponent, ProfileComponent, ChangeAvatarDialogComponent, - ProvidersComponent, PurgeVaultComponent, RecoverDeleteComponent, RecoverTwoFactorComponent, @@ -246,7 +241,6 @@ import { SharedModule } from "./shared.module"; UserLayoutComponent, VerifyEmailTokenComponent, VerifyRecoverDeleteComponent, - VerifyRecoverDeleteProviderComponent, HeaderModule, DangerZoneComponent, ], diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/providers-routing.module.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/providers-routing.module.ts index 55c22ec4cea..00c944e69bb 100644 --- a/bitwarden_license/bit-web/src/app/admin-console/providers/providers-routing.module.ts +++ b/bitwarden_license/bit-web/src/app/admin-console/providers/providers-routing.module.ts @@ -4,7 +4,6 @@ import { RouterModule, Routes } from "@angular/router"; import { authGuard } from "@bitwarden/angular/auth/guards"; import { AnonLayoutWrapperComponent } from "@bitwarden/auth/angular"; import { Provider } from "@bitwarden/common/admin-console/models/domain/provider"; -import { ProvidersComponent } from "@bitwarden/web-vault/app/admin-console/providers/providers.component"; import { FrontendLayoutComponent } from "@bitwarden/web-vault/app/layouts/frontend-layout.component"; import { UserLayoutComponent } from "@bitwarden/web-vault/app/layouts/user-layout.component"; @@ -22,6 +21,7 @@ import { AcceptProviderComponent } from "./manage/accept-provider.component"; import { EventsComponent } from "./manage/events.component"; import { MembersComponent } from "./manage/members.component"; import { ProvidersLayoutComponent } from "./providers-layout.component"; +import { ProvidersComponent } from "./providers.component"; import { AccountComponent } from "./settings/account.component"; import { SetupProviderComponent } from "./setup/setup-provider.component"; import { SetupComponent } from "./setup/setup.component"; diff --git a/apps/web/src/app/admin-console/providers/providers.component.html b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.component.html similarity index 100% rename from apps/web/src/app/admin-console/providers/providers.component.html rename to bitwarden_license/bit-web/src/app/admin-console/providers/providers.component.html diff --git a/apps/web/src/app/admin-console/providers/providers.component.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.component.ts similarity index 100% rename from apps/web/src/app/admin-console/providers/providers.component.ts rename to bitwarden_license/bit-web/src/app/admin-console/providers/providers.component.ts diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts index b6c7125c48c..80108e66eda 100644 --- a/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts +++ b/bitwarden_license/bit-web/src/app/admin-console/providers/providers.module.ts @@ -32,10 +32,12 @@ import { MembersComponent } from "./manage/members.component"; import { UserAddEditComponent } from "./manage/user-add-edit.component"; import { ProvidersLayoutComponent } from "./providers-layout.component"; import { ProvidersRoutingModule } from "./providers-routing.module"; +import { ProvidersComponent } from "./providers.component"; import { WebProviderService } from "./services/web-provider.service"; import { AccountComponent } from "./settings/account.component"; import { SetupProviderComponent } from "./setup/setup-provider.component"; import { SetupComponent } from "./setup/setup.component"; +import { VerifyRecoverDeleteProviderComponent } from "./verify-recover-delete-provider.component"; @NgModule({ imports: [ @@ -73,6 +75,8 @@ import { SetupComponent } from "./setup/setup.component"; ProviderBillingHistoryComponent, ProviderSubscriptionComponent, ProviderSubscriptionStatusComponent, + ProvidersComponent, + VerifyRecoverDeleteProviderComponent, ], providers: [WebProviderService], }) diff --git a/bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.html b/bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.html new file mode 100644 index 00000000000..116e1660d7a --- /dev/null +++ b/bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.html @@ -0,0 +1,15 @@ +

{{ "deleteProvider" | i18n }}

+{{ "deleteProviderWarning" | i18n }} +

+ {{ name }} +

+

{{ "deleteProviderRecoverConfirmDesc" | i18n }}

+
+
+ + + {{ "cancel" | i18n }} + +
diff --git a/apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts b/bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts similarity index 63% rename from apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts rename to bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts index dc6fa099610..a4461b3e11a 100644 --- a/apps/web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts +++ b/bitwarden_license/bit-web/src/app/admin-console/providers/verify-recover-delete-provider.component.ts @@ -5,8 +5,6 @@ import { firstValueFrom } from "rxjs"; import { ProviderApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/provider/provider-api.service.abstraction"; import { ProviderVerifyRecoverDeleteRequest } from "@bitwarden/common/admin-console/models/request/provider/provider-verify-recover-delete.request"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { LogService } from "@bitwarden/common/platform/abstractions/log.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { ToastService } from "@bitwarden/components"; @Component({ @@ -16,7 +14,6 @@ import { ToastService } from "@bitwarden/components"; // eslint-disable-next-line rxjs-angular/prefer-takeuntil export class VerifyRecoverDeleteProviderComponent implements OnInit { name: string; - formPromise: Promise; private providerId: string; private token: string; @@ -24,10 +21,8 @@ export class VerifyRecoverDeleteProviderComponent implements OnInit { constructor( private router: Router, private providerApiService: ProviderApiServiceAbstraction, - private platformUtilsService: PlatformUtilsService, private i18nService: I18nService, private route: ActivatedRoute, - private logService: LogService, private toastService: ToastService, ) {} @@ -42,22 +37,14 @@ export class VerifyRecoverDeleteProviderComponent implements OnInit { } } - async submit() { - try { - const request = new ProviderVerifyRecoverDeleteRequest(this.token); - this.formPromise = this.providerApiService.providerRecoverDeleteToken( - this.providerId, - request, - ); - await this.formPromise; - this.toastService.showToast({ - variant: "success", - title: this.i18nService.t("providerDeleted"), - message: this.i18nService.t("providerDeletedDesc"), - }); - await this.router.navigate(["/"]); - } catch (e) { - this.logService.error(e); - } - } + submit = async () => { + const request = new ProviderVerifyRecoverDeleteRequest(this.token); + await this.providerApiService.providerRecoverDeleteToken(this.providerId, request); + this.toastService.showToast({ + variant: "success", + title: this.i18nService.t("providerDeleted"), + message: this.i18nService.t("providerDeletedDesc"), + }); + await this.router.navigate(["/"]); + }; } diff --git a/bitwarden_license/bit-web/src/app/app-routing.module.ts b/bitwarden_license/bit-web/src/app/app-routing.module.ts index f3f3c158708..6aed12511c1 100644 --- a/bitwarden_license/bit-web/src/app/app-routing.module.ts +++ b/bitwarden_license/bit-web/src/app/app-routing.module.ts @@ -1,9 +1,13 @@ import { NgModule } from "@angular/core"; import { RouterModule, Routes } from "@angular/router"; +import { unauthGuardFn } from "@bitwarden/angular/auth/guards"; +import { AnonLayoutWrapperComponent } from "@bitwarden/auth/angular"; import { deepLinkGuard } from "@bitwarden/web-vault/app/auth/guards/deep-link.guard"; +import { RouteDataProperties } from "@bitwarden/web-vault/app/core"; import { ProvidersModule } from "./admin-console/providers/providers.module"; +import { VerifyRecoverDeleteProviderComponent } from "./admin-console/providers/verify-recover-delete-provider.component"; const routes: Routes = [ { @@ -17,6 +21,18 @@ const routes: Routes = [ loadChildren: async () => (await import("./secrets-manager/secrets-manager.module")).SecretsManagerModule, }, + { + path: "verify-recover-delete-provider", + component: AnonLayoutWrapperComponent, + canActivate: [unauthGuardFn()], + children: [ + { + path: "", + component: VerifyRecoverDeleteProviderComponent, + data: { titleId: "deleteAccount" } satisfies RouteDataProperties, + }, + ], + }, ]; @NgModule({ From 53f13f4ea549fca217b8716ca00b691e94320071 Mon Sep 17 00:00:00 2001 From: Jared McCannon Date: Mon, 28 Oct 2024 11:00:39 -0500 Subject: [PATCH 08/16] [PM-10314] Update Warnings for Verifying Domains and Single Org Policy Auto Enable (#11688) * Updated description and warning for single org policy. * Added check for verified domains in disabling single org. --- .../policies/policy-edit.component.html | 2 +- .../policies/policy-edit.component.ts | 3 ++ .../policies/single-org.component.html | 9 +++- .../policies/single-org.component.ts | 31 ++++++++++++- apps/web/src/locales/en/messages.json | 12 ++++++ .../domain-verification.component.ts | 43 +++++++++++++++++-- .../models/response/policy.response.ts | 2 + 7 files changed, 93 insertions(+), 9 deletions(-) diff --git a/apps/web/src/app/admin-console/organizations/policies/policy-edit.component.html b/apps/web/src/app/admin-console/organizations/policies/policy-edit.component.html index 20f62c1be0b..f656d488e06 100644 --- a/apps/web/src/app/admin-console/organizations/policies/policy-edit.component.html +++ b/apps/web/src/app/admin-console/organizations/policies/policy-edit.component.html @@ -15,7 +15,7 @@ -