Permissions Hasura中表的自定义用户权限
我正在开发一个应用程序,它需要对特定表的自定义权限。我有以下数据结构:Permissions Hasura中表的自定义用户权限,permissions,hasura,Permissions,Hasura,我正在开发一个应用程序,它需要对特定表的自定义权限。我有以下数据结构: Users -> id -> name Accounts -> id -> name UserAccounts -> userId -> accountId -> permissionLevel permissionLevel是一个枚举,可以是:Owner、ReadAndWrite或ReadOnly 我想要的是以下内容: 1) 如果您是用户帐户的所有
Users
-> id
-> name
Accounts
-> id
-> name
UserAccounts
-> userId
-> accountId
-> permissionLevel
permissionLevel
是一个枚举,可以是:Owner
、ReadAndWrite
或ReadOnly
我想要的是以下内容:1) 如果您是
用户帐户的所有者
,您可以邀请其他用户。
2) 如果要创建新的帐户
,您将在用户帐户
中获得所有者
权限
3) 如果您不是所述帐户的所有者
,则无法将自己添加到用户帐户
我遇到的问题是,我不确定如何在哈苏拉解决这个问题。我尝试了以下Hasura许可(但我缺少扩展where
子句(见下文))的选项):
{
“_或”:[
{
“_和”:[
{
“帐户ID”:{
“\u为\u空”:false
}
},
{
“账户”:{
“用户帐户”:{
“_和”:[
{
“用户ID”:{
_eq:“X-Hasura-User-Id”
}
},
{
“许可级别”:{
_eq:“所有者”
}
}
]
}
}
}
]
},
{
“_not”:{
“_存在”:{
“_表”:{
“名称”:“账户”,
“架构”:“公共”
},
“_where”:{
“用户帐户”:{
“帐户ID”:{
“_eq”:“$accountIdFromQuery”//目前,我的解决方案是使用事件触发器(触发AWS Lambda函数)以管理员权限写入UserAccounts
表。Hasura提供了有关如何实现这一点的文档:目前,我的解决方案是使用事件触发器(触发AWS Lambda函数)以管理员权限写入UserAccounts
表。Hasura提供了有关如何实现此目的的文档:
{
"_or": [
{
"_and": [
{
"accountId": {
"_is_null": false
}
},
{
"Account": {
"UserAccounts": {
"_and": [
{
"userId": {
"_eq": "X-Hasura-User-Id"
}
},
{
"permissionLevel": {
"_eq": "Owner"
}
}
]
}
}
}
]
},
{
"_not": {
"_exists": {
"_table": {
"name": "Account",
"schema": "public"
},
"_where": {
"UserAccounts": {
"accountId": {
"_eq": "$accountIdFromQuery" // <-- this does not exist AFAIK
}
}
}
}
}
}
]
}