GraphQL: доступ к свойствам типа в заголовке @auth - PullRequest
0 голосов
/ 02 сентября 2018

Скажем, у меня есть схема 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, и вполне возможно, что я совершенно не в том направлении. Пожалуйста, помогите.

EDIT

Мне удалось добиться аналогичного результата, изменив распознаватель. В случае 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?

1 Ответ

0 голосов
/ 04 сентября 2018

К сожалению, это еще не поддерживается преобразованием GraphQL, но это интересный вариант использования, который, я думаю, нам стоит рассмотреть дальше. Можете ли вы добавить запрос функции здесь https://github.com/aws-amplify/amplify-cli/issues и предоставить свой вариант использования и предложение о том, как наилучшим образом реализовать это в общем виде. Спасибо!

...