我已按照在https://www.graph.cool/上设置介绍项目的步骤进行操作。在项目的权限部分,我可以查看和编辑权限,例如Posts
:
单击显示Everyone
可以Edit Data
用于帖子的行时,会出现一个对话框。在那里我可以编辑权限,以便只有经过身份验证的用户可以编辑帖子:
但是,如何制定规则,让用户只能编辑自己的帖子,而不能编辑其他用户创建的帖子?
我已按照在https://www.graph.cool/上设置介绍项目的步骤进行操作。在项目的权限部分,我可以查看和编辑权限,例如Posts
:
单击显示Everyone
可以Edit Data
用于帖子的行时,会出现一个对话框。在那里我可以编辑权限,以便只有经过身份验证的用户可以编辑帖子:
但是,如何制定规则,让用户只能编辑自己的帖子,而不能编辑其他用户创建的帖子?
您的问题恰逢其时 :-) 昨天 Graphcool 发布了一个新的基于 GraphQL 查询的高级权限系统,允许您根据数据中的关系声明任意权限规则。
限制帖子所有者的 UPDATE 权限是一个简单的示例(代码如下),但我鼓励您查看文档并开始考虑此功能如何帮助您实现更复杂的权限规则
将帖子的编辑限制为作者
query ($node_id: ID!, $user_id: ID!) {
SomePostExists(filter:{
id: $node_id,
author: {id: $user_id}
})
}
文档
https://www.graph.cool/blog/2017-04-25-graphql-permission-queries-oolooch8oh/ https://www.graph.cool/docs/tutorials/authorization-content-management-system-miesho4goo/