mirror of
https://github.com/dani-garcia/bw_web_builds.git
synced 2024-12-26 20:38:25 +03:00
b19553a16f
This patch is missing changes to `src/app/settings/two-factor-u2f.component.ts`, which doesn't exist anymore since upstream moved from U2F to its successor, WebAuthn, which Vaultwarden doesn't have backend support for yet.
276 lines
12 KiB
Diff
276 lines
12 KiB
Diff
Submodule jslib contains modified content
|
|
diff --git a/jslib/src/angular/components/register.component.ts b/jslib/src/angular/components/register.component.ts
|
|
index ae45add..e6a5590 100644
|
|
--- a/jslib/src/angular/components/register.component.ts
|
|
+++ b/jslib/src/angular/components/register.component.ts
|
|
@@ -69,6 +69,12 @@ export class RegisterComponent {
|
|
}
|
|
|
|
async submit() {
|
|
+ if (typeof crypto.subtle === 'undefined') {
|
|
+ this.platformUtilsService.showToast('error', "This browser requires HTTPS to use the web vault",
|
|
+ "Check the Vaultwarden wiki for details on how to enable it");
|
|
+ return;
|
|
+ }
|
|
+
|
|
if (!this.acceptPolicies && this.showTerms) {
|
|
this.platformUtilsService.showToast('error', this.i18nService.t('errorOccurred'),
|
|
this.i18nService.t('acceptPoliciesError'));
|
|
diff --git a/package-lock.json b/package-lock.json
|
|
index eca77e9e..3b2531d4 100644
|
|
--- a/package-lock.json
|
|
+++ b/package-lock.json
|
|
@@ -7836,7 +7836,7 @@
|
|
},
|
|
"next-tick": {
|
|
"version": "1.0.0",
|
|
- "resolved": "http://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
|
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
|
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=",
|
|
"dev": true
|
|
},
|
|
@@ -8331,7 +8331,7 @@
|
|
},
|
|
"os-locale": {
|
|
"version": "1.4.0",
|
|
- "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
|
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
|
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
|
"dev": true,
|
|
"requires": {
|
|
diff --git a/src/404.html b/src/404.html
|
|
index eba36375..cb8883ec 100644
|
|
--- a/src/404.html
|
|
+++ b/src/404.html
|
|
@@ -41,10 +41,10 @@
|
|
</a>
|
|
</p>
|
|
<p>You can <a href="/">return to the web vault</a>, check our <a href="https://status.bitwarden.com/">status page</a>
|
|
- or <a href="https://bitwarden.com/contact/">contact us</a>.</p>
|
|
+ or <a href="https://github.com/dani-garcia/vaultwarden">contact us</a>.</p>
|
|
</div>
|
|
<div class="container footer text-muted content">
|
|
- © Copyright 2021 Bitwarden, Inc.
|
|
+ © Copyright 2021 Bitwarden, Inc. (Powered by Vaultwarden)
|
|
</div>
|
|
</body>
|
|
</html>
|
|
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
|
|
index 9b11af23..05e34dd7 100644
|
|
--- a/src/app/app.component.ts
|
|
+++ b/src/app/app.component.ts
|
|
@@ -146,6 +146,10 @@ export class AppComponent implements OnDestroy, OnInit {
|
|
}
|
|
break;
|
|
case 'showToast':
|
|
+ if (typeof message.text === "string" && typeof crypto.subtle === 'undefined') {
|
|
+ message.title="This browser requires HTTPS to use the web vault";
|
|
+ message.text="Check the Vaultwarden wiki for details on how to enable it";
|
|
+ }
|
|
this.showToast(message);
|
|
break;
|
|
case 'setFullWidth':
|
|
diff --git a/src/app/layouts/footer.component.html b/src/app/layouts/footer.component.html
|
|
index b001b9e3..c1bd2ac8 100644
|
|
--- a/src/app/layouts/footer.component.html
|
|
+++ b/src/app/layouts/footer.component.html
|
|
@@ -1,7 +1,7 @@
|
|
<div class="container footer text-muted">
|
|
<div class="row">
|
|
<div class="col">
|
|
- © {{year}}, Bitwarden Inc.
|
|
+ © {{year}}, Bitwarden Inc. (Powered by Vaultwarden)
|
|
</div>
|
|
<div class="col text-center"></div>
|
|
<div class="col text-right">
|
|
diff --git a/src/app/layouts/frontend-layout.component.html b/src/app/layouts/frontend-layout.component.html
|
|
index 4c2c4ca1..dc990b22 100644
|
|
--- a/src/app/layouts/frontend-layout.component.html
|
|
+++ b/src/app/layouts/frontend-layout.component.html
|
|
@@ -1,5 +1,5 @@
|
|
<router-outlet></router-outlet>
|
|
<div class="container my-5 text-muted text-center">
|
|
- © {{year}}, Bitwarden Inc.
|
|
+ © {{year}}, Bitwarden Inc. (Powered by Vaultwarden)
|
|
<br> {{'versionNumber' | i18n : version}}
|
|
</div>
|
|
diff --git a/src/app/layouts/navbar.component.html b/src/app/layouts/navbar.component.html
|
|
index b28897c9..524764c6 100644
|
|
--- a/src/app/layouts/navbar.component.html
|
|
+++ b/src/app/layouts/navbar.component.html
|
|
@@ -38,7 +38,7 @@
|
|
<i class="fa fa-fw fa-user" aria-hidden="true"></i>
|
|
{{'myAccount' | i18n}}
|
|
</a>
|
|
- <a class="dropdown-item" href="https://help.bitwarden.com" target="_blank" rel="noopener">
|
|
+ <a class="dropdown-item" href="https://github.com/dani-garcia/vaultwarden" target="_blank" rel="noopener">
|
|
<i class="fa fa-fw fa-question-circle" aria-hidden="true"></i>
|
|
{{'getHelp' | i18n}}
|
|
</a>
|
|
diff --git a/src/app/organizations/settings/organization-subscription.component.ts b/src/app/organizations/settings/organization-subscription.component.ts
|
|
index d8c2e6cf..5e32a9c8 100644
|
|
--- a/src/app/organizations/settings/organization-subscription.component.ts
|
|
+++ b/src/app/organizations/settings/organization-subscription.component.ts
|
|
@@ -105,7 +105,7 @@ export class OrganizationSubscriptionComponent implements OnInit {
|
|
const contactSupport = await this.platformUtilsService.showDialog(this.i18nService.t('changeBillingPlanDesc'),
|
|
this.i18nService.t('changeBillingPlan'), this.i18nService.t('contactSupport'), this.i18nService.t('close'));
|
|
if (contactSupport) {
|
|
- this.platformUtilsService.launchUri('https://bitwarden.com/contact');
|
|
+ this.platformUtilsService.launchUri('https://github.com/dani-garcia/vaultwarden');
|
|
}
|
|
}
|
|
|
|
diff --git a/src/app/send/access.component.html b/src/app/send/access.component.html
|
|
index 84944a2b..b736bbe4 100644
|
|
--- a/src/app/send/access.component.html
|
|
+++ b/src/app/send/access.component.html
|
|
@@ -82,10 +82,7 @@
|
|
<div class="col-12 text-center mt-5 text-muted">
|
|
<p class="mb-0">{{'sendAccessTaglineProductDesc' | i18n}}<br>
|
|
{{'sendAccessTaglineLearnMore' | i18n}} <a
|
|
- href="https://www.bitwarden.com/products/send?source=web-vault" target="_blank">Bitwarden Send</a>
|
|
- {{'sendAccessTaglineOr' | i18n}} <a
|
|
- href="https://vault.bitwarden.com/#/register" target="_blank">{{'sendAccessTaglineSignUp' | i18n}}</a>
|
|
- {{'sendAccessTaglineTryToday' | i18n}}
|
|
+ href="https://www.bitwarden.com/products/send/" target="_blank">Bitwarden Send</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
diff --git a/src/app/services/services.module.ts b/src/app/services/services.module.ts
|
|
index 5214ace3..4485b752 100644
|
|
--- a/src/app/services/services.module.ts
|
|
+++ b/src/app/services/services.module.ts
|
|
@@ -141,19 +141,25 @@ const eventLoggingService = new EventLoggingService(storageService, apiService,
|
|
containerService.attachToWindow(window);
|
|
|
|
export function initFactory(): Function {
|
|
+ function getBaseUrl() {
|
|
+ // If the base URL is `https://bitwarden.example.com/base/path/`,
|
|
+ // `window.location.href` should have one of the following forms:
|
|
+ //
|
|
+ // - `https://bitwarden.example.com/base/path/`
|
|
+ // - `https://bitwarden.example.com/base/path/#/some/route[?queryParam=...]`
|
|
+ //
|
|
+ // We want to get to just `https://bitwarden.example.com/base/path`.
|
|
+ let baseUrl = window.location.href;
|
|
+ baseUrl = baseUrl.replace(/#.*/, ''); // Strip off `#` and everything after.
|
|
+ baseUrl = baseUrl.replace(/\/+$/, ''); // Trim any trailing `/` chars.
|
|
+ return baseUrl;
|
|
+ }
|
|
return async () => {
|
|
await (storageService as HtmlStorageService).init();
|
|
- const isDev = platformUtilsService.isDev();
|
|
-
|
|
- if (isDev || platformUtilsService.isSelfHost()) {
|
|
- environmentService.baseUrl = window.location.origin;
|
|
- } else {
|
|
- environmentService.notificationsUrl = 'https://notifications.bitwarden.com';
|
|
- environmentService.enterpriseUrl = 'https://portal.bitwarden.com';
|
|
- }
|
|
|
|
+ environmentService.baseUrl = getBaseUrl();
|
|
apiService.setUrls({
|
|
- base: window.location.origin,
|
|
+ base: environmentService.baseUrl,
|
|
api: null,
|
|
identity: null,
|
|
events: null,
|
|
diff --git a/src/app/vault/vault.component.ts b/src/app/vault/vault.component.ts
|
|
index 56f99588..6eaa158c 100644
|
|
--- a/src/app/vault/vault.component.ts
|
|
+++ b/src/app/vault/vault.component.ts
|
|
@@ -80,9 +80,7 @@ export class VaultComponent implements OnInit, OnDestroy {
|
|
async ngOnInit() {
|
|
this.showVerifyEmail = !(await this.tokenService.getEmailVerified());
|
|
this.showBrowserOutdated = window.navigator.userAgent.indexOf('MSIE') !== -1;
|
|
- this.trashCleanupWarning = this.i18nService.t(
|
|
- this.platformUtilsService.isSelfHost() ? 'trashCleanupWarningSelfHosted' : 'trashCleanupWarning'
|
|
- );
|
|
+ this.trashCleanupWarning = this.i18nService.t('trashCleanupWarningSelfHosted');
|
|
|
|
const queryParamsSub = this.route.queryParams.subscribe(async params => {
|
|
await this.syncService.fullSync(false);
|
|
diff --git a/src/scss/styles.scss b/src/scss/styles.scss
|
|
index 598fea83..f5ed4253 100644
|
|
--- a/src/scss/styles.scss
|
|
+++ b/src/scss/styles.scss
|
|
@@ -1,5 +1,59 @@
|
|
@import "../css/webfonts.css";
|
|
|
|
+/**** START Bitwarden_RS CHANGES ****/
|
|
+/* This combines all selectors extending it into one */
|
|
+%bwrs-hide { display: none !important; }
|
|
+
|
|
+/* This allows searching for the combined style in the browsers dev-tools (look into the head tag) */
|
|
+#bwrs-hide, head { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide any link pointing to billing */
|
|
+a[href$="/settings/billing"] { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide any link pointing to subscriptions */
|
|
+a[href$="/settings/subscription"] { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide any link pointing to emergency access */
|
|
+a[href$="/settings/emergency-access"] { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide the `Enterprise Single Sign-On` button on the login page */
|
|
+a[href$="/sso"] { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide the info box that advertises Bitwarden Send */
|
|
+app-send-info.d-block { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide Two-Factor menu in Organization settings */
|
|
+app-org-settings a[href$="/settings/two-factor"] { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide organization plans */
|
|
+app-organization-plans > form > div.form-check { @extend %bwrs-hide; }
|
|
+app-organization-plans > form > h2.mt-5 { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide the `API Key` section under `My Account` */
|
|
+app-account > div:nth-child(9),
|
|
+app-account > p,
|
|
+app-account > button:nth-child(11),
|
|
+app-account > button:nth-child(12) {
|
|
+ @extend %bwrs-hide;
|
|
+}
|
|
+
|
|
+/* Hide the radio button and label for the `Custom` org user type */
|
|
+#userTypeCustom, label[for^=userTypeCustom] {
|
|
+ @extend %bwrs-hide;
|
|
+}
|
|
+
|
|
+/* Hide the warning that policy config is moving to Business Portal */
|
|
+app-org-policies > app-callout { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide `Single Organization` policy */
|
|
+app-org-policies > table > tbody > tr:nth-child(4) { @extend %bwrs-hide; }
|
|
+
|
|
+/* Hide Tax Info and Form in Organization settings */
|
|
+app-org-account > div.secondary-header:nth-child(3) { @extend %bwrs-hide; }
|
|
+app-org-account > div.secondary-header:nth-child(3) + p { @extend %bwrs-hide; }
|
|
+app-org-account > div.secondary-header:nth-child(3) + p + form { @extend %bwrs-hide; }
|
|
+/**** END Bitwarden_RS CHANGES ****/
|
|
+
|
|
$primary: #175DDC;
|
|
$primary-accent: #1252A3;
|
|
$secondary: #ced4da;
|
|
diff --git a/src/services/webPlatformUtils.service.ts b/src/services/webPlatformUtils.service.ts
|
|
index 0a443ed3..bf3ab2a6 100644
|
|
--- a/src/services/webPlatformUtils.service.ts
|
|
+++ b/src/services/webPlatformUtils.service.ts
|
|
@@ -212,11 +212,13 @@ export class WebPlatformUtilsService implements PlatformUtilsService {
|
|
}
|
|
|
|
isDev(): boolean {
|
|
- return process.env.ENV === 'development';
|
|
+ return false;
|
|
}
|
|
|
|
+ // Even though Vaultwarden is self-hosted, returning true ends up enabling
|
|
+ // various license checks.
|
|
isSelfHost(): boolean {
|
|
- return process.env.SELF_HOST.toString() === 'true';
|
|
+ return false;
|
|
}
|
|
|
|
copyToClipboard(text: string, options?: any): void {
|