В моей системе есть дела, которые принадлежат пользователям. Пользователи являются частью отделов. Настройка заключается в том, что пользователи могут получить доступ ко всем случаям, которые принадлежат пользователям, которые находятся в том же отделе, что и пользователь.
Проблема заключается в том, что: если я пользователь UserX и я являюсь частью DepartmentA, а также есть пользователь Y который является частью того же отдела, а также DepartmentB и третьим UserZ, который является только частью DepartmentB. Подобный запрос позволяет UserX получать доступ к случаям UserZ через UserY:
query {
me {
id
name
department {
cases {
id
user {
id
name
department {
cases {
... ends up listing cases belonging to departments that the user should not have access to
}
}
}
}
}
}
}
Поэтому мой вопрос заключается в том, как мне контролировать доступ пользователей, чтобы они возвращали только те дела, к которым у них есть доступ, независимо от того, в каком «контекст», в котором запрашиваются дела. Что я хотел бы сделать в RESTful API, так это просто получить список разрешенных идентификаторов, к которым пользователь может получить доступ, и отфильтровать их, но я не уверен, что это правильный путь подойти к решению GraphQL.
Я действительно надеюсь, что мой вопрос имеет смысл, и спасибо за то, что прочитали его.