the user's permissions come in an array, as I do to validate whether or not he has access by iterating the arrat
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
const expectedPermission = route.data.expectedPermission;
const token= localStorage.getItem("Token")
const tokenPayload = decode(token);
const role=tokenPayload['https://menu-api.demo.com/roles'][0];
console.log(route);
const permissions=["create:user", "delete:user", "read:user"]
if (!this.auth.isAuthenticated() || permissions !== expectedPermission) {
this.router.navigate(['external-api']);
return false;
}
return true;
}
{
path: 'profile',
component: ProfileComponent,
canActivate: [RoleGuard],
data: {
expectedPermission: 'read:user'
}
}