首页 > 解决方案 > _eq 对不同表中 ID 的权限值?

问题描述

我在 hasura 中设置了一些权限,我有一个“已分配”表,它将分配的项目映射到用户,我要求用户只能访问他们已分配的项目。我认为最好的方法是使用我拥有的 _exists 运算符:

{"_exists":{"_table":{"name":"assigned_item","schema":"public"},"_where":{"_and":[{"userid":{"_eq":"X-Hasura-User-Id"}},{"feed_item_id":{"_eq":"XXX"}}]}}

我的问题与最后一个 _eq: XXX 有关 - 我需要它等于 item 表中的值。

正在针对分配的项目创建权限。

标签: postgresqlpermissionshasura

解决方案


假设您的assigned_item表有userid并且feed_item_id..您的权限应该是:

  1. assigned_item桌子上,只需添加权限:userid _eq X-Hasura-User-Id如“用户可以看到他们分配的所有项目”。
  2. 在表上,使用关系通过表feed_items?到达。假设 feed_items 上的关系称为“assigned_users”,则权限为:user_idassigned_itemfeed_items > assigned_users > user_id _eq X-Hasura-User-Id

推荐阅读