说我有一个类似于GraphQL的架构:
type Posts
@model
@auth(rules: [
{allow: groups, groups: ["Employees"], mutations: [create, update, delete, get, list]}
])
{
id: ID!
name: String
groups: [String]!
}
我想只允许帖子的groups
属性中列出的用户拥有这些属性。我想做类似的事情:
@auth(rules: [
{allow: groups, groups: [Device.groups], mutations: [create, update, delete, get, list]}
]
任何想法从哪里开始?我是GraphQL的新手,我完全有可能朝错误的方向前进。请帮忙。
编辑
通过修改解析器,我设法获得了类似的结果。对于list
,它看起来像这样:
other code...
#foreach( $postGroup in $item.groups )
#foreach( $userGroup in $userGroups )
#if( $postGroup == $userGroup )
$util.qr($items.add($item))
#end
#end
#end
...other code
这当然是一种非常低效的方法(即嵌套的foreach循环),但这是由于我缺乏对Apache VLT的了解,并会在某个时候解决。
我仍然不知道,但是,是否可以直接在GraphQL模式中执行此操作?
答案 0 :(得分:1)
不幸的是,GraphQL转换尚不支持此功能,但是这是一个有趣的用例,我认为我们应该进一步研究。您能否在https://github.com/aws-amplify/amplify-cli/issues处添加功能请求,并提供使用案例和建议,以最佳方式以通用方式实现此功能。谢谢!