如何将我的 hasura 权限设置为仅查看与用户对应的 table 行?
How do I set my hasura permission to only see the rows of my table corresponding to a user?
事情是这样的。我在这里描述了 3 tables:
我的应用程序上的人可以下订单。那么,我要
- 具有
rex
权限的用户可以查看 所有 orders
table 的行
- 具有
delivery
权限的用户只能查看 orders
table 中 zip
列设置为 delivery
用户的 zip
从 orders
table,我可以为每个订单获得一个 zip
。使用 table zip_user
,我可以从 zip
中得到 user_id
。在 user_id
之外,我可以从 users
table.
中获取送货用户
虽然让 rex
查看所有 orders
table 是微不足道的,但我还无法配置 delivery
的权限用户。我需要做什么?
换句话说,如果用户在 orders
table 上执行 select,x-hasura-user-id
设置为某个用户 ID,x-hasura-role
设置为delivery
,该用户如何仅从 orders
table 中获取与该用户的 user_id
关联的 zip
匹配的行?
哈修罗有关系的概念。如果你有外键,它会自动创建关系,如果没有,你可以在 UI 中自己创建它们。建立关系后,您将能够设置深层权限,因此在 orders
table 上,您将能够使用 users.id
.
从这里开始:https://hasura.io/docs/1.0/graphql/manual/schema/relationships/index.html
事情是这样的。我在这里描述了 3 tables:
我的应用程序上的人可以下订单。那么,我要
- 具有
rex
权限的用户可以查看 所有orders
table 的行 - 具有
delivery
权限的用户只能查看orders
table 中zip
列设置为delivery
用户的zip
从 orders
table,我可以为每个订单获得一个 zip
。使用 table zip_user
,我可以从 zip
中得到 user_id
。在 user_id
之外,我可以从 users
table.
虽然让 rex
查看所有 orders
table 是微不足道的,但我还无法配置 delivery
的权限用户。我需要做什么?
换句话说,如果用户在 orders
table 上执行 select,x-hasura-user-id
设置为某个用户 ID,x-hasura-role
设置为delivery
,该用户如何仅从 orders
table 中获取与该用户的 user_id
关联的 zip
匹配的行?
哈修罗有关系的概念。如果你有外键,它会自动创建关系,如果没有,你可以在 UI 中自己创建它们。建立关系后,您将能够设置深层权限,因此在 orders
table 上,您将能够使用 users.id
.
从这里开始:https://hasura.io/docs/1.0/graphql/manual/schema/relationships/index.html