Skip to content

Commit 637ca8b

Browse files
committed
feat(authz): hide fulfilment and invoice tab for sales admin
1 parent a3abb6c commit 637ca8b

File tree

2 files changed

+42
-17
lines changed

2 files changed

+42
-17
lines changed

packages/modules/ui/src/lib/components/templates/private/private-template.component.html

+18-17
Original file line numberDiff line numberDiff line change
@@ -53,20 +53,23 @@
5353
>
5454
<!-- Show for only superadmins. -->
5555
@if (isAdmin$ | async) {
56-
<rc-drawer-navigation-item
57-
icon="mdi:invoice-outline"
58-
[routerLink]="ROUTER.pages.main.children.invoices.link"
59-
[routerLinkActive]="['selected']"
60-
>Invoices</rc-drawer-navigation-item
61-
>
62-
}
56+
<ng-container>
57+
<rc-drawer-navigation-item
58+
icon="mdi:invoice-outline"
59+
[routerLink]="ROUTER.pages.main.children.invoices.link"
60+
[routerLinkActive]="['selected']"
61+
>Invoices</rc-drawer-navigation-item
62+
>
6363

64-
<rc-drawer-navigation-item
65-
icon="mdi:truck-outline"
66-
[routerLink]="ROUTER.pages.main.children.fulfillments.link"
67-
[routerLinkActive]="['selected']"
68-
>Fulfillments</rc-drawer-navigation-item
69-
>
64+
<rc-drawer-navigation-item
65+
icon="mdi:truck-outline"
66+
[routerLink]="ROUTER.pages.main.children.fulfillments.link"
67+
[routerLinkActive]="['selected']"
68+
>Fulfillments</rc-drawer-navigation-item
69+
>
70+
</ng-container>
71+
72+
}
7073
</ng-container>
7174
<!-- /Home -->
7275

@@ -256,10 +259,8 @@
256259
[routerLink]="ROUTER.pages.main.children.orders.link"
257260
>Home</rc-drawer-navigation-item
258261
>
259-
} @else if (currentRoute === ROUTER.pages.main.children.orders.link ||
260-
currentRoute === ROUTER.pages.main.children.products.link || currentRoute
261-
=== ROUTER.pages.main.children.invoices.link || currentRoute ===
262-
ROUTER.pages.main.children.fulfillments.link) {
262+
} @else if (menuMainLinks.includes(currentRoute) && !!!(isSale$ | async))
263+
{
263264
<rc-drawer-navigation-item
264265
icon="icon mdi mdi-hexagon-outline"
265266
[routerLink]="ROUTER.pages.main.children.management.children.index.link"

packages/modules/ui/src/lib/components/templates/private/private-template.component.ts

+24
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,30 @@ export class RcPrivateTemplateComponent implements OnInit, OnDestroy {
114114
})
115115
);
116116

117+
isSale$ = combineLatest([
118+
this.accountFacade.user$,
119+
this.organizationContextFacade.selectedId$,
120+
this.organizationContextFacade.all$,
121+
]).pipe(
122+
map(([user, organizationId, organizations]) => {
123+
return user?.roleAssociations.some(
124+
(ra) =>
125+
ra.role === 'sales-r-id' &&
126+
ra.attributes?.some((attr) =>
127+
attr.attributes?.some(
128+
(inst) =>
129+
inst.value === organizationId ||
130+
isHierarchical(
131+
String(inst.value),
132+
String(organizationId),
133+
organizations
134+
)
135+
)
136+
)
137+
);
138+
})
139+
);
140+
117141
constructor(
118142
private readonly accountFacade: AccountFacade,
119143
private readonly breakpointObserver: BreakpointObserver,

0 commit comments

Comments
 (0)