仅允许用户在 Graphcool 权限中编辑自己的内容
Only allow user to edit own content in Graphcool permissions
我已按照 https://www.graph.cool/ 中设置介绍项目的步骤进行操作。在项目的权限部分,我可以查看和编辑权限,例如Posts
:
当单击显示 Everyone
可以 Edit Data
为 Post 的行时,会出现一个对话框。在那里我可以编辑权限,以便只有经过身份验证的用户才能编辑帖子:
但是,如何制定规则,让用户只能编辑自己的帖子,而不能编辑其他用户创建的帖子?
你的问题来得正是时候:-) 昨天 Graphcool 发布了一个基于 GraphQL 查询的新的高级权限系统,允许你根据数据中的关系声明任意权限规则。
限制 post 所有者的更新权限是一个简单的示例(下面的代码),但我鼓励您查看文档并开始考虑此功能如何帮助您实施更复杂的权限规则
限制作者编辑 post
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/
我已按照 https://www.graph.cool/ 中设置介绍项目的步骤进行操作。在项目的权限部分,我可以查看和编辑权限,例如Posts
:
当单击显示 Everyone
可以 Edit Data
为 Post 的行时,会出现一个对话框。在那里我可以编辑权限,以便只有经过身份验证的用户才能编辑帖子:
但是,如何制定规则,让用户只能编辑自己的帖子,而不能编辑其他用户创建的帖子?
你的问题来得正是时候:-) 昨天 Graphcool 发布了一个基于 GraphQL 查询的新的高级权限系统,允许你根据数据中的关系声明任意权限规则。
限制 post 所有者的更新权限是一个简单的示例(下面的代码),但我鼓励您查看文档并开始考虑此功能如何帮助您实施更复杂的权限规则
限制作者编辑 post
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/