feat(menu-guard): implement hasMenuGuard for route access control based on tenant menu permissions

This commit is contained in:
2026-07-14 12:22:26 -03:00
parent e383a8f159
commit cc87169c1c
2 changed files with 30 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
import { inject } from '@angular/core';
import { CanActivateFn, Router } from '@angular/router';
import { TenantService } from '../services/tenant.service';
export const hasMenuGuard = (menuCode: string): CanActivateFn => {
return () => {
const tenantService = inject(TenantService);
const router = inject(Router);
const tenant = tenantService.tenant();
if (!tenant) {
return router.createUrlTree(['/']);
}
const hasMenu = tenant.menues?.some(menu => menu.code === menuCode) ?? false;
if (hasMenu) {
return true;
}
return router.createUrlTree(['/']);
};
};