diff --git a/bitwarden_license/src/app/app.component.ts b/bitwarden_license/src/app/app.component.ts
index 33c6e828c8..224afce70c 100644
--- a/bitwarden_license/src/app/app.component.ts
+++ b/bitwarden_license/src/app/app.component.ts
@@ -1,6 +1,7 @@
import { Component } from '@angular/core';
import { AppComponent as BaseAppComponent } from 'src/app/app.component';
+import { DisablePersonalVaultExportPolicy } from './policies/disable-personal-vault-export.component';
import { MaximumVaultTimeoutPolicy } from './policies/maximum-vault-timeout.component';
@Component({
@@ -14,6 +15,7 @@ export class AppComponent extends BaseAppComponent {
this.policyListService.addPolicies([
new MaximumVaultTimeoutPolicy(),
+ new DisablePersonalVaultExportPolicy(),
]);
}
diff --git a/bitwarden_license/src/app/app.module.ts b/bitwarden_license/src/app/app.module.ts
index c69bc1b356..77cee0379a 100644
--- a/bitwarden_license/src/app/app.module.ts
+++ b/bitwarden_license/src/app/app.module.ts
@@ -9,6 +9,7 @@ import { RouterModule } from '@angular/router';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
+import { DisablePersonalVaultExportPolicyComponent } from './policies/disable-personal-vault-export.component';
import { MaximumVaultTimeoutPolicyComponent } from './policies/maximum-vault-timeout.component';
import { OssRoutingModule } from 'src/app/oss-routing.module';
@@ -33,6 +34,7 @@ import { ServicesModule } from 'src/app/services/services.module';
declarations: [
AppComponent,
MaximumVaultTimeoutPolicyComponent,
+ DisablePersonalVaultExportPolicyComponent,
],
bootstrap: [AppComponent],
})
diff --git a/bitwarden_license/src/app/policies/disable-personal-vault-export.component.html b/bitwarden_license/src/app/policies/disable-personal-vault-export.component.html
new file mode 100644
index 0000000000..f08f74c323
--- /dev/null
+++ b/bitwarden_license/src/app/policies/disable-personal-vault-export.component.html
@@ -0,0 +1,6 @@
+
diff --git a/bitwarden_license/src/app/policies/disable-personal-vault-export.component.ts b/bitwarden_license/src/app/policies/disable-personal-vault-export.component.ts
new file mode 100644
index 0000000000..b79bdfdb77
--- /dev/null
+++ b/bitwarden_license/src/app/policies/disable-personal-vault-export.component.ts
@@ -0,0 +1,24 @@
+import { Component } from '@angular/core';
+import { FormBuilder } from '@angular/forms';
+
+import { I18nService } from 'jslib-common/abstractions/i18n.service';
+
+import { PolicyType } from 'jslib-common/enums/policyType';
+
+import { PolicyRequest } from 'jslib-common/models/request/policyRequest';
+
+import { BasePolicy, BasePolicyComponent } from 'src/app/organizations/policies/base-policy.component';
+
+export class DisablePersonalVaultExportPolicy extends BasePolicy {
+ name = 'disablePersonalVaultExport';
+ description = 'disablePersonalVaultExportDesc';
+ type = PolicyType.DisablePersonalVaultExport;
+ component = DisablePersonalVaultExportPolicyComponent;
+}
+
+@Component({
+ selector: 'policy-disable-personal-vault-export',
+ templateUrl: 'disable-personal-vault-export.component.html',
+})
+export class DisablePersonalVaultExportPolicyComponent extends BasePolicyComponent {
+}
diff --git a/jslib b/jslib
index 32774561f3..ee1ea922a9 160000
--- a/jslib
+++ b/jslib
@@ -1 +1 @@
-Subproject commit 32774561f37bdcf9abb80276c5d1958b7ec192de
+Subproject commit ee1ea922a9d5a51ef8df2abf4b97fc035ed782be
diff --git a/src/app/organizations/tools/export.component.ts b/src/app/organizations/tools/export.component.ts
index 4fd0e7351c..e68eb5de2d 100644
--- a/src/app/organizations/tools/export.component.ts
+++ b/src/app/organizations/tools/export.component.ts
@@ -6,11 +6,10 @@ import { EventService } from 'jslib-common/abstractions/event.service';
import { ExportService } from 'jslib-common/abstractions/export.service';
import { I18nService } from 'jslib-common/abstractions/i18n.service';
import { PlatformUtilsService } from 'jslib-common/abstractions/platformUtils.service';
+import { PolicyService } from 'jslib-common/abstractions/policy.service';
import { ExportComponent as BaseExportComponent } from '../../tools/export.component';
-import { EventType } from 'jslib-common/enums/eventType';
-
@Component({
selector: 'app-org-export',
templateUrl: '../../tools/export.component.html',
@@ -18,16 +17,21 @@ import { EventType } from 'jslib-common/enums/eventType';
export class ExportComponent extends BaseExportComponent {
constructor(cryptoService: CryptoService, i18nService: I18nService,
platformUtilsService: PlatformUtilsService, exportService: ExportService,
- eventService: EventService, private route: ActivatedRoute) {
- super(cryptoService, i18nService, platformUtilsService, exportService, eventService);
+ eventService: EventService, private route: ActivatedRoute, policyService: PolicyService) {
+ super(cryptoService, i18nService, platformUtilsService, exportService, eventService, policyService);
}
- ngOnInit() {
+ async ngOnInit() {
+ await super.ngOnInit();
this.route.parent.parent.params.subscribe(async params => {
this.organizationId = params.organizationId;
});
}
+ async checkExportDisabled() {
+ return;
+ }
+
getExportData() {
return this.exportService.getOrganizationExport(this.organizationId, this.format);
}
diff --git a/src/app/tools/export.component.html b/src/app/tools/export.component.html
index 23c9f84492..3b5212dfd1 100644
--- a/src/app/tools/export.component.html
+++ b/src/app/tools/export.component.html
@@ -2,11 +2,16 @@
+
+
+ {{'personalVaultExportPolicyInEffect' | i18n}}
+
+
{{'exportMasterPassword' | i18n}}
-