【发布时间】:2021-09-14 08:03:39
【问题描述】:
我正在尝试在 Hasura 上设置“行选择”权限。我有一个(为简洁起见)数据模型,如下所示
用户
id: UserID
应用程序
id: AppID
应用权限
user_id: User ID
app_id: App ID
permissions: [ ENUM: Admin, View, Owner ]
饲料
app_id: AppID
feed_data: Some Feed Data
现在,我希望查询所有 Feed 以获取经过身份验证的用户。查询可以是以下形式
- 获取经过身份验证的用户拥有查看权限的所有应用
query MyQuery {
feed(limit: 10) {
app_id
feed_data
}
}
- 在查询过滤器中获取带有
app_id且经过身份验证的用户具有查看权限的应用
query MyQuery {
feed(limit: 10, where: {app_id: {_in: [1, 2]}}) {
app_id
feed_data
}
}
由于feed 表中没有直接包含user_id 信息,我不能直接对feed 表使用X-Hasura-User-Id 属性。我还尝试对app_permission 表使用_exists 关系,但我无法将app_id 过滤器放在权限子句中。
{
"_exists": {
"_where": {
"user_id": {
"_eq": "X-Hasura-User-Id"
}
},
"_table": {
"schema": "public",
"name": "app_permission"
}
}
}
我不确定如何使用 Hasura 进行此类数据建模。任何帮助表示赞赏。谢谢。
【问题讨论】:
标签: hasura hasura-jwt