Skip to content
Open
8 changes: 6 additions & 2 deletions apps/web/src/app/layouts/user-layout.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,15 @@
<bit-nav-logo [openIcon]="logo" route="." [label]="'passwordManager' | i18n"></bit-nav-logo>

<bit-nav-item icon="bwi-vault" [text]="'vaults' | i18n" route="vault"></bit-nav-item>
<bit-nav-item icon="bwi-send" [text]="'send' | i18n" route="sends"></bit-nav-item>
@if (!(disableSendPolicy$ | async)) {
<bit-nav-item icon="bwi-send" [text]="'send' | i18n" route="sends"></bit-nav-item>
}
<bit-nav-group icon="bwi-wrench" [text]="'tools' | i18n" route="tools">
<bit-nav-item [text]="'generator' | i18n" route="tools/generator"></bit-nav-item>
<bit-nav-item [text]="'importData' | i18n" route="tools/import"></bit-nav-item>
<bit-nav-item [text]="'exportVault' | i18n" route="tools/export"></bit-nav-item>
@if (!(disablePersonalVaultExportPolicy$ | async)) {
<bit-nav-item [text]="'exportVault' | i18n" route="tools/export"></bit-nav-item>
}
</bit-nav-group>
<bit-nav-item icon="bwi-sliders" [text]="'reports' | i18n" route="reports"></bit-nav-item>
<bit-nav-group icon="bwi-cog" [text]="'settings' | i18n" route="settings">
Expand Down
17 changes: 17 additions & 0 deletions apps/web/src/app/layouts/user-layout.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ export class UserLayoutComponent implements OnInit {
protected hasFamilySponsorshipAvailable$: Observable<boolean>;
protected showSponsoredFamilies$: Observable<boolean>;
protected showSubscription$: Observable<boolean>;
protected disableSendPolicy$: Observable<boolean>;
// detects if policy is enabled and applies to the user, admins are exempted
protected disablePersonalVaultExportPolicy$: Observable<boolean>;
protected consolidatedSessionTimeoutComponent$: Observable<boolean>;

constructor(
Expand Down Expand Up @@ -84,5 +87,19 @@ export class UserLayoutComponent implements OnInit {
async ngOnInit() {
document.body.classList.remove("layout_frontend");
await this.syncService.fullSync(false);

this.disableSendPolicy$ = this.accountService.activeAccount$.pipe(
getUserId,
switchMap((userId) =>
this.policyService.policyAppliesToUser$(PolicyType.DisableSend, userId),
),
);

this.disablePersonalVaultExportPolicy$ = this.accountService.activeAccount$.pipe(
getUserId,
switchMap((userId) =>
this.policyService.policyAppliesToUser$(PolicyType.DisablePersonalVaultExport, userId),
),
);
}
}
Loading