【发布时间】:2018-02-06 00:05:33
【问题描述】:
我有一个使用 Rails 作为后端和 AngularJS 作为前端的 Web 应用程序,它有一个相当复杂的权限系统,必须相应地在前端隐藏/显示按钮。
例如,想象一下像 ebay 这样的东西,如果我创建了一个产品,我可以编辑、删除等。但有人可以与我共享产品,我也可以编辑,但不能删除。所以权限是按资源计算的,而不是使用角色。
我想为每个 json 对象添加一个“权限”属性,例如:
[{
id: 1,
name: "product 1",
permissions: {
canEdit: true,
canDelete: false
}
},
{
id: 2,
name: "product 2",
permissions: {
canEdit: true,
canDelete: true
}
}]
是否有任何最佳实践将每个资源权限发送到前端?
需要说明的是,此权限仅用于显示/隐藏按钮,即使用户更改前端的值,后端仍会阻止此资源
【问题讨论】:
-
你不应该在前端处理这样的权限,因为有人可以很容易地修改它......
-
此权限仅用于显示/隐藏按钮,更改将不允许该人执行任何操作
标签: ruby-on-rails angularjs rest web-applications permissions