如果登录的按钮具有管理员角色,我如何隐藏该按钮



如果一个简单用户登录,按钮确实会显示,但如果一个具有管理员角色的用户登录,它确实会显示——我不希望这样。

<a *ngIf="userService.roleMatch !==  (['Admin'])" mat-list-item [routerLink]="'/homeb'" routerLinkActive="active">
<i class="fas fa-home"></i>Home I miei dati
</a>

最好的解决方案是创建一个处理授权的类。在里面,制作一个函数,输出你需要的一切。

roleMatch(allowedRoles): boolean { 
var isMatch = false; 
var userRoles: string[] = JSON.parse(localStorage.getItem('userRoles')); 
for (let el of allowedRoles) {
if (userRoles.indexOf(el) > -1) {
isMatch = true;
break;
}
} 
return isMatch; 
}
<a *ngIf="!userService.roleMatch(['Admin'])" mat-list-item [routerLink]="'/homeb'" routerLinkActive="active">
<i class="fas fa-home"></i>Home I miei dati
</a>

返回false,在foreach循环内我相信不会有帮助。

最新更新