diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.html b/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.html
index 0ce398b131f..5ebf5cb9ca0 100644
--- a/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.html
+++ b/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.html
@@ -10,8 +10,13 @@
[text]="'serviceAccounts' | i18n"
route="service-accounts"
>
-
-
+
+
diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.ts b/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.ts
index 86ef7ce3b04..1d757c90ce2 100644
--- a/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.ts
+++ b/bitwarden_license/bit-web/src/app/secrets-manager/layout/navigation.component.ts
@@ -1,5 +1,8 @@
import { Component } from "@angular/core";
+import { ActivatedRoute } from "@angular/router";
+import { map } from "rxjs";
+import { OrganizationService } from "@bitwarden/common/abstractions/organization/organization.service.abstraction";
import { Organization } from "@bitwarden/common/models/domain/organization";
import { SecretsManagerLogo } from "./secrets-manager-logo";
@@ -9,7 +12,13 @@ import { SecretsManagerLogo } from "./secrets-manager-logo";
templateUrl: "./navigation.component.html",
})
export class NavigationComponent {
+ protected isAdmin$ = this.route.params.pipe(
+ map((params) => this.organizationService.get(params.organizationId)?.isAdmin)
+ );
+
protected readonly logo = SecretsManagerLogo;
protected orgFilter = (org: Organization) => org.canAccessSecretsManager;
+
+ constructor(private route: ActivatedRoute, private organizationService: OrganizationService) {}
}
diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/settings/porting/sm-export.component.ts b/bitwarden_license/bit-web/src/app/secrets-manager/settings/porting/sm-export.component.ts
index 6f98c17b9c8..684e63063d0 100644
--- a/bitwarden_license/bit-web/src/app/secrets-manager/settings/porting/sm-export.component.ts
+++ b/bitwarden_license/bit-web/src/app/secrets-manager/settings/porting/sm-export.component.ts
@@ -76,17 +76,13 @@ export class SecretsManagerExportComponent implements OnInit, OnDestroy {
};
private async doExport() {
- try {
- const exportData = await this.secretsManagerApiService.export(
- this.orgId,
- this.formGroup.get("format").value
- );
+ const exportData = await this.secretsManagerApiService.export(
+ this.orgId,
+ this.formGroup.get("format").value
+ );
- await this.downloadFile(exportData, this.formGroup.get("format").value);
- this.platformUtilsService.showToast("success", null, this.i18nService.t("dataExportSuccess"));
- } catch (e) {
- this.logService.error(e);
- }
+ await this.downloadFile(exportData, this.formGroup.get("format").value);
+ this.platformUtilsService.showToast("success", null, this.i18nService.t("dataExportSuccess"));
}
private async downloadFile(data: string, format: string) {
diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/settings/services/sm-porting-api.service.ts b/bitwarden_license/bit-web/src/app/secrets-manager/settings/services/sm-porting-api.service.ts
index a2861a5ad16..6432796430c 100644
--- a/bitwarden_license/bit-web/src/app/secrets-manager/settings/services/sm-porting-api.service.ts
+++ b/bitwarden_license/bit-web/src/app/secrets-manager/settings/services/sm-porting-api.service.ts
@@ -30,19 +30,13 @@ export class SecretsManagerPortingApiService {
) {}
async export(organizationId: string, exportFormat = "json"): Promise {
- let response = {};
-
- try {
- response = await this.apiService.send(
- "GET",
- "/sm/" + organizationId + "/export?format=" + exportFormat,
- null,
- true,
- true
- );
- } catch (error) {
- return null;
- }
+ const response = await this.apiService.send(
+ "GET",
+ "/sm/" + organizationId + "/export?format=" + exportFormat,
+ null,
+ true,
+ true
+ );
return JSON.stringify(
await this.decryptExport(organizationId, new SecretsManagerExportResponse(response)),
diff --git a/bitwarden_license/bit-web/src/app/secrets-manager/settings/settings-routing.module.ts b/bitwarden_license/bit-web/src/app/secrets-manager/settings/settings-routing.module.ts
index 6cd6249d335..325592beb33 100644
--- a/bitwarden_license/bit-web/src/app/secrets-manager/settings/settings-routing.module.ts
+++ b/bitwarden_license/bit-web/src/app/secrets-manager/settings/settings-routing.module.ts
@@ -1,6 +1,9 @@
import { NgModule } from "@angular/core";
import { RouterModule, Routes } from "@angular/router";
+import { Organization } from "@bitwarden/common/models/domain/organization";
+import { OrganizationPermissionsGuard } from "@bitwarden/web-vault/app/organizations/guards/org-permissions.guard";
+
import { SecretsManagerExportComponent } from "./porting/sm-export.component";
import { SecretsManagerImportComponent } from "./porting/sm-import.component";
@@ -8,15 +11,19 @@ const routes: Routes = [
{
path: "import",
component: SecretsManagerImportComponent,
+ canActivate: [OrganizationPermissionsGuard],
data: {
titleId: "importData",
+ organizationPermissions: (org: Organization) => org.isAdmin,
},
},
{
path: "export",
component: SecretsManagerExportComponent,
+ canActivate: [OrganizationPermissionsGuard],
data: {
titleId: "exportData",
+ organizationPermissions: (org: Organization) => org.isAdmin,
},
},
];