From 96c6b870cb58a166d8b4a4f81bdb9015aa79efdd Mon Sep 17 00:00:00 2001
From: Jason Ng
Date: Wed, 9 Aug 2023 14:10:01 -0400
Subject: [PATCH] PM-2593 Update Premium Urls to target cloudWebVaultUrl
(#5861)
* updated urls in premium web component and premium libs to use the cloudwebvaulturl
* moved premium.component in web from base settings to a new settings folder inside vault
---
.../src/popup/settings/premium.component.ts | 14 ++++++++++++--
.../src/vault/app/accounts/premium.component.ts | 14 ++++++++++++--
.../settings/subscription-routing.module.ts | 2 +-
apps/web/src/app/shared/loose-components.module.ts | 2 +-
.../{ => vault}/settings/premium.component.html | 2 +-
.../app/{ => vault}/settings/premium.component.ts | 10 +++++++---
.../src/vault/components/premium.component.ts | 13 +++++++++----
7 files changed, 43 insertions(+), 14 deletions(-)
rename apps/web/src/app/{ => vault}/settings/premium.component.html (98%)
rename apps/web/src/app/{ => vault}/settings/premium.component.ts (91%)
diff --git a/apps/browser/src/popup/settings/premium.component.ts b/apps/browser/src/popup/settings/premium.component.ts
index 5c179a12d72..459cd2a6cb2 100644
--- a/apps/browser/src/popup/settings/premium.component.ts
+++ b/apps/browser/src/popup/settings/premium.component.ts
@@ -4,6 +4,7 @@ import { Component } from "@angular/core";
import { DialogServiceAbstraction } from "@bitwarden/angular/services/dialog";
import { PremiumComponent as BasePremiumComponent } from "@bitwarden/angular/vault/components/premium.component";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
+import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
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";
@@ -24,9 +25,18 @@ export class PremiumComponent extends BasePremiumComponent {
logService: LogService,
private location: Location,
private currencyPipe: CurrencyPipe,
- dialogService: DialogServiceAbstraction
+ dialogService: DialogServiceAbstraction,
+ environmentService: EnvironmentService
) {
- super(i18nService, platformUtilsService, apiService, logService, stateService, dialogService);
+ super(
+ i18nService,
+ platformUtilsService,
+ apiService,
+ logService,
+ stateService,
+ dialogService,
+ environmentService
+ );
// Support old price string. Can be removed in future once all translations are properly updated.
const thePrice = this.currencyPipe.transform(this.price, "$");
diff --git a/apps/desktop/src/vault/app/accounts/premium.component.ts b/apps/desktop/src/vault/app/accounts/premium.component.ts
index 13116fd3ed4..fd275d6ed7d 100644
--- a/apps/desktop/src/vault/app/accounts/premium.component.ts
+++ b/apps/desktop/src/vault/app/accounts/premium.component.ts
@@ -3,6 +3,7 @@ import { Component } from "@angular/core";
import { DialogServiceAbstraction } from "@bitwarden/angular/services/dialog";
import { PremiumComponent as BasePremiumComponent } from "@bitwarden/angular/vault/components/premium.component";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
+import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
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";
@@ -19,8 +20,17 @@ export class PremiumComponent extends BasePremiumComponent {
apiService: ApiService,
logService: LogService,
stateService: StateService,
- dialogService: DialogServiceAbstraction
+ dialogService: DialogServiceAbstraction,
+ environmentService: EnvironmentService
) {
- super(i18nService, platformUtilsService, apiService, logService, stateService, dialogService);
+ super(
+ i18nService,
+ platformUtilsService,
+ apiService,
+ logService,
+ stateService,
+ dialogService,
+ environmentService
+ );
}
}
diff --git a/apps/web/src/app/billing/settings/subscription-routing.module.ts b/apps/web/src/app/billing/settings/subscription-routing.module.ts
index 35b98b75d6a..43c7a6d7222 100644
--- a/apps/web/src/app/billing/settings/subscription-routing.module.ts
+++ b/apps/web/src/app/billing/settings/subscription-routing.module.ts
@@ -4,7 +4,7 @@ import { RouterModule, Routes } from "@angular/router";
import { BillingHistoryViewComponent } from "../../billing/settings/billing-history-view.component";
import { PaymentMethodComponent } from "../../billing/settings/payment-method.component";
import { UserSubscriptionComponent } from "../../billing/settings/user-subscription.component";
-import { PremiumComponent } from "../../settings/premium.component";
+import { PremiumComponent } from "../../vault/settings/premium.component";
import { SubscriptionComponent } from "./subscription.component";
diff --git a/apps/web/src/app/shared/loose-components.module.ts b/apps/web/src/app/shared/loose-components.module.ts
index 74a422d3b21..0acb456a41e 100644
--- a/apps/web/src/app/shared/loose-components.module.ts
+++ b/apps/web/src/app/shared/loose-components.module.ts
@@ -81,7 +81,6 @@ import { DeleteAccountComponent } from "../settings/delete-account.component";
import { DomainRulesComponent } from "../settings/domain-rules.component";
import { LowKdfComponent } from "../settings/low-kdf.component";
import { PreferencesComponent } from "../settings/preferences.component";
-import { PremiumComponent } from "../settings/premium.component";
import { ProfileComponent } from "../settings/profile.component";
import { PurgeVaultComponent } from "../settings/purge-vault.component";
import { SecurityKeysComponent } from "../settings/security-keys.component";
@@ -107,6 +106,7 @@ import { ShareComponent } from "../vault/individual-vault/share.component";
import { AddEditComponent as OrgAddEditComponent } from "../vault/org-vault/add-edit.component";
import { AttachmentsComponent as OrgAttachmentsComponent } from "../vault/org-vault/attachments.component";
import { CollectionsComponent as OrgCollectionsComponent } from "../vault/org-vault/collections.component";
+import { PremiumComponent } from "../vault/settings/premium.component";
import { EnvironmentSelectorModule } from "./../components/environment-selector/environment-selector.module";
import { AccountFingerprintComponent } from "./components/account-fingerprint/account-fingerprint.component";
diff --git a/apps/web/src/app/settings/premium.component.html b/apps/web/src/app/vault/settings/premium.component.html
similarity index 98%
rename from apps/web/src/app/settings/premium.component.html
rename to apps/web/src/app/vault/settings/premium.component.html
index 3c7fadd86ff..b47bfc1be2b 100644
--- a/apps/web/src/app/settings/premium.component.html
+++ b/apps/web/src/app/vault/settings/premium.component.html
@@ -54,7 +54,7 @@
;
@@ -39,9 +41,11 @@ export class PremiumComponent implements OnInit {
private messagingService: MessagingService,
private syncService: SyncService,
private logService: LogService,
- private stateService: StateService
+ private stateService: StateService,
+ private environmentService: EnvironmentService
) {
this.selfHosted = platformUtilsService.isSelfHost();
+ this.cloudWebVaultUrl = this.environmentService.getCloudWebVaultUrl();
}
async ngOnInit() {
diff --git a/libs/angular/src/vault/components/premium.component.ts b/libs/angular/src/vault/components/premium.component.ts
index af66db7f4b6..b13cfa428d3 100644
--- a/libs/angular/src/vault/components/premium.component.ts
+++ b/libs/angular/src/vault/components/premium.component.ts
@@ -1,6 +1,7 @@
import { Directive, OnInit } from "@angular/core";
import { ApiService } from "@bitwarden/common/abstractions/api.service";
+import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service";
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";
@@ -13,6 +14,7 @@ export class PremiumComponent implements OnInit {
isPremium = false;
price = 10;
refreshPromise: Promise;
+ cloudWebVaultUrl: string;
constructor(
protected i18nService: I18nService,
@@ -20,8 +22,11 @@ export class PremiumComponent implements OnInit {
protected apiService: ApiService,
private logService: LogService,
protected stateService: StateService,
- protected dialogService: DialogServiceAbstraction
- ) {}
+ protected dialogService: DialogServiceAbstraction,
+ private environmentService: EnvironmentService
+ ) {
+ this.cloudWebVaultUrl = this.environmentService.getCloudWebVaultUrl();
+ }
async ngOnInit() {
this.isPremium = await this.stateService.getCanAccessPremium();
@@ -46,7 +51,7 @@ export class PremiumComponent implements OnInit {
});
if (confirmed) {
- this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=purchase");
+ this.platformUtilsService.launchUri(`${this.cloudWebVaultUrl}/#/?premium=purchase`);
}
}
@@ -58,7 +63,7 @@ export class PremiumComponent implements OnInit {
});
if (confirmed) {
- this.platformUtilsService.launchUri("https://vault.bitwarden.com/#/?premium=manage");
+ this.platformUtilsService.launchUri(`${this.cloudWebVaultUrl}/#/?premium=manage`);
}
}
}