使用 Angular 2 实现 ACL / 基于纸张的最佳方法是什么?
简而言之,我的场景是这样的:角色是动态的,并且基于客户端可以配置的权限,也可以是动态的。
我需要防止用户访问他无权访问的特定资源。为此,我想到了使用 Guards of the Angular 的概念。使用 CanActivate Guard,我可以根据我在每条路线中输入的信息来设置是否让用户通过。该信息将是该路由所引用的资源的名称。当我找到守卫时,我可以与他的角色进行比较,看看他的角色是否可以访问此功能以及是否允许导航。
但这样可能会陷入另外两个问题:
1 - 如何将用户重定向到他有权访问的资源?我是否必须列出路由文件并寻找与他的角色兼容的人,然后重定向到那里?
2 - 如何禁用在它可以访问的页面上看不到的组件?例如,它可以访问列表页面 X,但它无权创建新项目,因此我需要删除 Create Something 按钮。或者更确切地说,如何使用包含某些角色的特定信息但不包含它的角色的 divs 元素来做到这一点?
我想知道如何在角度生态系统中最好地处理这种情况。
谢谢收听。