Поместите это разрешение на friends
, и тогда пользователи смогут видеть все строки друзей, где friend_id
- это их user.id
:
{
"friend_id" :{
"_eq" : "X-Hasura-User-Id"
}
}
Разрешения для отношений наследуются из таблицы отношений. Поэтому вам просто нужно убедиться, что пользователь может регулярно получать доступ к связанным строкам таблицы самостоятельно, и если вы можете это сделать, это будет применяться и к отношениям.
Несвязано, похоже, в этих таблицах одинаковые столбцы. Возможно, вы захотите использовать отношения с ссылками на себя из users
-> users
как friends
, если они идентичны. Если не игнорировать это =)
Изменить:
Попробуйте использовать разрешение _exists
:
(Вы, вероятно, можете упростить это, используя прямой доступ к friends
и user
, но я не знаю ваша точная таблица и структура отношений)
"Если в таблице есть друзья, строка, в которой 'friend_id' - 'X-Hasura-User-Id', а 'user_id' совпадает с идентификатором пользователя этой строки «
{
"_or": [
{
"_exists": {
"_table": { "schema": "public", "name": "friends" },
"_where": {
"_and": [
{ "friend_id": { "_eq": "X-Hasura-User-Id" } },
{ "user_id": { "_ceq": "user_id" } }
]
}
}
},
{ "id": { "_eq": "X-Hasura-User-Id" } }
]
}