1

我想构建一个简单的 ember 应用程序,以sails 作为后端。有很好的蓝图可以帮助我解决这个问题,但我希望所有数据都完全与用户隔离。所以它实际上是一个单用户应用程序,但适用于多个用户。

因此,每个用户的所有数据都是不同的。所以当 ember 向我发出请求时,/notes/findAll我只想返回与用户对应的注释。另一方面,用户对属于他的所有数据拥有完全权限(可能除了用户模型,这是唯一的特殊情况)。

最简单的方法是什么?

  • 我可以自己修改蓝图!但这是个好主意吗?如果以后能够通过基于每个模型的配置来组合它,那就太好了。

  • 有没有办法通过政策做到这一点?那么设置安全用户过滤器的策略?

  • 还有另一种更好/默认的方法来解决我的问题吗?

谢谢!

4

1 回答 1

0

我正在构建相同类型的应用程序。我通过owner向每个模型添加一个属性并将其设置在策略中来实现这一点。

https://github.com/tjwebb/xtuple-api/blob/master/api/models/base/xTupleObject.js#L29-L32

我创建了Permission模型Role,如果用户要求的User对象通过Permissionand 与他们的对象相关Role,那么他们就被授权执行特定的操作。

https://github.com/tjwebb/xtuple-api/blob/master/api/policies/authorize.js#L51-L56

如果您想授予对该findAll方法的访问权限,您可能希望在所有控制器都继承自的超类中重新实现它。我还没有到这部分,但这是我解决这个问题的计划。

于 2014-08-26T17:37:39.773 回答