[英]Angular 8 - How to authorize permissions instead of roles with ngx-permissions?
我在一個項目中使用 ngx-permissions ( https://www.npmjs.com/package/ngx-permissions ),以便我可以管理我的應用程序的用戶權限。
據我所知,我們可以在 html 部分授權角色,但不能授權......
這是我們想要的:
網址:
<div *ngxPermissionsOnly="['voirResources']">1232465</div>
打字稿:
ngOnInit() {
const roleMetier: Role = new Role();
roleMetier.nom = 'ADMIN';
roleMetier.permissions = ['voirHighlightCard', 'voirResources', 'voirTout', 'voirNextSteps'];
this.rolesService.addRole(roleMetier.nom, roleMetier.permissions);
this.permissionsService.loadPermissions(['ADMIN']);
}
如您所見,我為我的角色 Admin 設置了一些權限。 之后,我為當前用戶加載管理員權限。
在 Html 代碼中,我添加了 *ngxPermissions="['voirResources']" 以便只有具有“voirResources”權限的用戶才能看到 div 內容。
這是stackblitz上的代碼=> https://stackblitz.com/edit/angular-poc-ngx-permissions
我的問題是:
謝謝你的建議!
您需要使用this.permissionsService.addPermission(['seeContent']);
或通過loadPermission
所以修改你的stackblitz:
ngOnInit() {
// this.chargerPermissionsUtilisateur();
this.chargerRoleUtilisateur();
console.log(this.rolesService.getRoles());
}
chargerRoleUtilisateur() {
const roleMetier: Role = new Role();
roleMetier.nom = 'ADMIN';
roleMetier.permissions = ['seeContent'];
this.permissionsService.addPermission(['seeContent']);
this.rolesService.addRole(roleMetier.nom, roleMetier.permissions);
}
或者,您可以將您的chargerPermissionsUtilisateur()
方法更改為:
this.permissionsService.loadPermissions(['seeContent']);
並更改ngOnInit
的順序
this.chargerPermissionsUtilisateur();
this.chargerRoleUtilisateur();
https://stackblitz.com/edit/angular-poc-ngx-permissions-qxi4mz
使用 8.1.1 版本可以在一行中完成
this.rolesService.addRoleWithPermissions('ADMIN', ['seeContent']);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.