Hasura:允许用户不投票给自己 post
Hasura: Allow users to not vote for their own post
我有三个模型用户,Post,投票
我试图创建一个基于角色的授权,作者(创建 post/blog 的用户)不能为他们自己的 post/blog 投票。为了识别用户,我使用了 Hasura 会话变量 X-Hasura-User-Id
。配置(行插入)投票 table 的权限规则,
错误:
{
"errors": [
{
"extensions": {
"path": "$.selectionSet.insert_Vote_one.args.object",
"code": "permission-error"
},
"message": "Check constraint violation. insert check constraint failed"
}
]
}
但是,当作者和其他用户尝试投票时,他们违反了约束 post/blog。如何使用权限规则解决后一种情况的问题?
更新
授权设置
我使用我的一个身份验证服务器(快速)创建用户和 access_token 其中包含 user.id
作为 Hasura 会话变量 X-Hasura-User-Id
.
然后我用这个access_token来维护基于角色的授权:
看来您要制定以下规则:X-Hasura-User-Id
!= Vote.blog.User_id
(假设 FK Vote.Blog_id
的 hasura 关系称为 blog
)。
您正在做的是确保 Vote.User_id
!= X-Hasura-User-Id
。我假设提交投票的用户将始终拥有与自己相同的 ID。这将始终导致违反权限约束。
除非我误解了什么...
如果有帮助,请告诉我们。
我有三个模型用户,Post,投票
我试图创建一个基于角色的授权,作者(创建 post/blog 的用户)不能为他们自己的 post/blog 投票。为了识别用户,我使用了 Hasura 会话变量 X-Hasura-User-Id
。配置(行插入)投票 table 的权限规则,
错误:
{
"errors": [
{
"extensions": {
"path": "$.selectionSet.insert_Vote_one.args.object",
"code": "permission-error"
},
"message": "Check constraint violation. insert check constraint failed"
}
]
}
但是,当作者和其他用户尝试投票时,他们违反了约束 post/blog。如何使用权限规则解决后一种情况的问题?
更新
授权设置
我使用我的一个身份验证服务器(快速)创建用户和 access_token 其中包含 user.id
作为 Hasura 会话变量 X-Hasura-User-Id
.
然后我用这个access_token来维护基于角色的授权:
看来您要制定以下规则:X-Hasura-User-Id
!= Vote.blog.User_id
(假设 FK Vote.Blog_id
的 hasura 关系称为 blog
)。
您正在做的是确保 Vote.User_id
!= X-Hasura-User-Id
。我假设提交投票的用户将始终拥有与自己相同的 ID。这将始终导致违反权限约束。
除非我误解了什么...
如果有帮助,请告诉我们。