我想构建一个带有风帆作为后端的简单ember应用程序。 有很好的blueprints可以帮助我,但我希望所有数据都是完整的用户隔离。所以它实际上是一个用户应用程序,但适用于多个用户。
因此每个用户的所有数据都不同。因此,当ember向/notes/findAll
发出请求时,我只想返回与用户对应的注释。另一方面,用户拥有属于他的所有数据的完全权限(除了用户模型,这是唯一的特殊情况)。
最简单的方法是什么?
我可以自己修改蓝图!但这是个好主意吗?能够稍后通过基于每个模型的配置将它组合起来会很好。
有没有办法用政策做到这一点?那么策略设置了安全的用户过滤器吗?
还有其他更好/默认的方式来解决我的问题吗?
谢谢!
答案 0 :(得分:0)
我正在构建相同类型的应用程序。我通过向每个模型添加owner
属性并在策略中设置它来实现此目的。
https://github.com/tjwebb/xtuple-api/blob/master/api/models/base/xTupleObject.js#L29-L32
我创建了Permission
和Role
模型,如果用户要求的对象通过User
和Permission
与他们的Role
对象相关联,然后他们被授权采取特定行动。
https://github.com/tjwebb/xtuple-api/blob/master/api/policies/authorize.js#L51-L56
如果要授予对findAll
方法的访问权限,您可能希望在所有控制器继承的超类中重新实现它。我还没有完成这个部分,但这是我解决这个问题的计划。