【发布时间】:2014-06-02 21:41:52
【问题描述】:
我正在尝试隐藏和显示我的 Angular 应用程序的部分(稍后我会担心保护路线)
我遇到的问题是,后端正在返回数据库特定方面的 CRUD 权限。基于这些权限,我应该决定如何隐藏和显示 UI 的元素。然而,从来没有任何直接的一对一映射。
所以我需要根据各种权限组合来决定如何显示 UI 的各个部分。例如,“如果他们可以“阅读”插入订单或“阅读”财务”或“阅读”或“创建”拍卖,则显示报告选项卡。
但是,这是一个非常小的示例,通常权限要长得多,并且仅适用于应用程序的一部分。
我知道我将在 ng-show 中调用一个函数,但我只是不知道如何组织该函数以解决所有这些用例。
非常感谢任何想法。
这是一个返回的权限数组示例:
{
"account": [
"read",
"create",
"update",
"delete"
],
"an_advertiser": [
"read",
"create",
"update",
"delete"
],
"an_insertion_order": [
"read",
"create",
"update",
"delete"
],
"auction": [
"read",
"create",
"update",
"delete"
],
"dashboard": [
"read",
"create",
"update",
"delete"
],
"finance": [
"read",
"create",
"update",
"delete"
],
"input_output": [
"read",
"create",
"update",
"delete"
],
"insertion_order": [
"read",
"create",
"update",
"delete"
],
"publisher": [
"read",
"create",
"update",
"delete"
],
"report": [
"read",
"create",
"update",
"delete"
],
"user": [
"read",
"create",
"update",
"delete"
]
}
【问题讨论】:
-
我不确定这是否会在受信任的环境中在内部使用,但是如果您信任客户端代码来执行您的安全策略,这听起来可能是一个安全漏洞.也许我误解了这个问题,但即使你隐瞒了粗鲁的行动,你也绝对不能相信客户的反馈。任何使用 Fiddler 之类的东西的人都可以修改从服务器发送的代码,修改它,然后再次运行。
-
是的,它是一个内部工具,我们没有使用来自客户端的任何东西进行授权。这只是根据从服务器返回的用户权限隐藏和显示 UI 元素。
标签: javascript angularjs security authentication permissions