大家好!我是前端世界的新手,所以请不要太苛刻地判断。
我们将在 Angular 2 中开发一个应用程序,其外观将取决于用户的角色。
假设有一个包含一些对象的目录。
对于具有Admin角色的用户,每个条目的对面应该有 2 个按钮可用:编辑、删除。
对于具有Editor角色的用户,每个条目的对面应该有 1 个按钮可用:edit。
对于具有Reader角色的用户,不应有任何按钮可用于修改或删除目录条目。
所以问题是,实现这个的最佳方法是什么?
我有这样的想法:用户通过调用 POST 方法获得授权/login
,并在响应中返回他有权访问的所有类型的应用程序对象的权限:
对于管理员将从服务器返回:
[{"someDictionary" : {"read" : "true", "update" : "true", "delete" : "true"} }]
因为编辑器将从服务器返回:
[{"someDictionary" : {"read" : "true", "update" : "true" } }]
对于读者将从服务器返回:
[{"someDictionary" : {"read" : "true", "update" : "true", "delete" : "true"} }]
此外,根据收到的用户权限数组,我们为他显示或隐藏 UI 上的组件(+ 当然在后端检查)。
从上述选项中,我看到了这样的缺点
- 如果权限发生变化,用户必须重新登录才能使用新的权限。
- 我觉得我正在重新发明轮子。
有没有更好的方法来实现上述内容?请告诉我。