169 похожих чатов

Всем привет! Реализовал директиву hasRole, которую можно применять к FIELD_DEFINITION и

OBJECT по инструкции из https://www.apollographql.com/docs/graphql-tools/schema-directives#enforcing-access-permissions.

Хочу, чтобы её можно было навешивать на аргументы и инпуты мутаций, то есть на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION.

Логика такая: например, в мутации updatePost ограничить изменение title таким образом, чтобы только администраторы могли менять это поле, путём навешивания директивы на аргумент title. При этом на аргумент content ничего не навешивать, разрешив тем самым всем редактировать поле content. Или навесить директиву с другой ролью (отличной от администратора).

Возможно ли это вообще?

Очевидно, что нужно использовать visitArgumentDefinition и visitInputFieldDefinition.

Но проблема в том, что у argument'ов и input field'ов в field нет resolve.

3 ответов

6 просмотров

Мне кажется, что лучше будет сделать две мутации updatePost и adminUpdatePost. Так будет понятнее со стороны клиента что использовать, и проще со стороны сервера в реализации

Вешай свои директивы на ARGUMENT_DEFINITION и INPUT_FIELD_DEFINITION. Но вот считывай их через visitFieldDefinition: - получил филд конфиг и провалился в его аргументы и типы аргументов - если где-то в глубине нашел свою директиву, то на текущем филд конфиге правишь резолвер. По другому у тебя никак не получится.

https://nexus.js.org/docs/future-features

Похожие вопросы

Обсуждают сегодня

Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
комрады, че-та лыжы не едут var tmpFont: TFont; begin tmpFont:= TFont.Create; try case rgFontColor.ItemIndex of 0: tmpFont.Color:= clWindowText; 1: tmpFo...
Ed Doc
34
Вот еще криповенькая штука. uMain.pas(517,3) Warning: Case statement does not handle all possible cases И ЧО? 😂
Александр (Rouse_) Багель
15
.model small .stack 100h .data a db 'Hello, World!', '$' ; исходная строка b db 20 dup(?) ; строка b с запасом на максимальную длину .code main: ...
Алексей -man
3
вопрос, кого посмотреть в ютубе или где почитать про указатели чтобы раз и навсегда запомнить зачем они нужны и как правильно ими пользоваться? поделитесь хорошими ресурсами, ...
-
14
М-да. Почему бы просто со stringlist не работать?
Michael Longneck
23
Интересно, нет ли какого-то способа получить из dll не адрес самой метки, а адрес со смещением?
The Bird of Hermes
54
Редактор листа Excel, по сути двумерный массив ячеек. Ячейка - это экземпляр класса, у нее всякие свойства, методы. Проблема в том, что количество используемых строк и колоно...
Sergey Bodrov
2
Is there a digital way to cut the electricity from a usb in linux? It sounds weird, but it's exactly what I need to do. I tried to simulate the unplug/replug but is not the ...
Eduard Rivas
15
Решаемо? У тебя есть софт собирающийся без хинтов ворнингов?
Александр (Rouse_) Багель
9
Карта сайта