【发布时间】:2020-10-03 01:23:59
【问题描述】:
我正在建立一个论坛。我有一个非常简单的数据库设置:
Users: id, display_name, email, profile
Posts: id, title, content, user_id
user_id 是用户表的外键。
权限:
对于插入/更新,X-Hasura-User-Id 必须等于 id 和 user_id 才能插入到 Users 和 Posts 表中。 (所以他们只能修改自己的帖子)
对于选择,我有它,因此用户可以阅读任何帖子,但如果 id = X-Hasura-User-Id,他们只能选择用户的行。这样用户就只能读取他们的个人资料数据。
但是,为了选择,我显然需要用户能够访问用户表的 display_name,以显示帖子的作者。
现在我显然可以让它选择,他们只能访问这个字段,并且一切正常。我可以返回一个显示帖子和作者的 GQL 查询。
但这是否也意味着用户只需对 Users 表运行查询并获取所有 display_names 的列表,本质上显示我有多少用户?
有没有办法设置它,以便用户只能从用户表中选择他们自己的信息,但是如果查询是“来自”服务器,它可以访问 display_name?我知道有管理员角色等,但我认为这不适用于这里。
【问题讨论】:
标签: permissions graphql hasura