间接模型的所有权
Ownership of an in direct model
我有一个拥有房子的用户(几个用户可以拥有房子),房子可以有几件家具。
CustomUser.json关系:
"houses": {
"type": "hasAndBelongsToMany",
"model": "House",
"foreignKey": "houseId"
}
House.json关系:
"furnitures": {
"type": "hasAndBelongsToMany",
"model": "Furniture",
"foreignKey": ""
},
"customUsers": {
"type": "hasAndBelongsToMany",
"model": "CustomUser",
"foreignKey": ""
}
我的 ACL 很简单,房屋和家具的 ACL 看起来像这样:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
现在,访问用户的房子可以正常工作,但用户不会列出他们的家具,因为他们属于房子(房子是所有者)。如何以最简单的方式解决此问题?最好是以某种方式定义用户通过房子拥有家具?不过,家具必须属于房子(因为多个用户可以拥有一个房子)。
所以我通过另一个名为 "loopback-component-access-groups" 的模块解决了这个问题,它允许您定义组。在这种特殊情况下,我将房屋模型设为用户和家具可以访问的组。一个用户可以有不同的角色,所以我只是设置用户(具有角色"member")可以访问同一组(房子)中的家具。这个解决方案对我有用,但我不完全确定如果其他对象与家具相关,它们是否继承它们属于房子。
编写我自己的角色解析器使这变得非常灵活,在角色解析器中我必须制定逻辑来找到原始父级并确保没有死关系(因为 LB 还不支持级联) .
我建议从这里开始:
https://loopback.io/doc/en/lb3/Defining-and-using-roles.html
我有一个拥有房子的用户(几个用户可以拥有房子),房子可以有几件家具。
CustomUser.json关系:
"houses": {
"type": "hasAndBelongsToMany",
"model": "House",
"foreignKey": "houseId"
}
House.json关系:
"furnitures": {
"type": "hasAndBelongsToMany",
"model": "Furniture",
"foreignKey": ""
},
"customUsers": {
"type": "hasAndBelongsToMany",
"model": "CustomUser",
"foreignKey": ""
}
我的 ACL 很简单,房屋和家具的 ACL 看起来像这样:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
现在,访问用户的房子可以正常工作,但用户不会列出他们的家具,因为他们属于房子(房子是所有者)。如何以最简单的方式解决此问题?最好是以某种方式定义用户通过房子拥有家具?不过,家具必须属于房子(因为多个用户可以拥有一个房子)。
所以我通过另一个名为 "loopback-component-access-groups" 的模块解决了这个问题,它允许您定义组。在这种特殊情况下,我将房屋模型设为用户和家具可以访问的组。一个用户可以有不同的角色,所以我只是设置用户(具有角色"member")可以访问同一组(房子)中的家具。这个解决方案对我有用,但我不完全确定如果其他对象与家具相关,它们是否继承它们属于房子。
编写我自己的角色解析器使这变得非常灵活,在角色解析器中我必须制定逻辑来找到原始父级并确保没有死关系(因为 LB 还不支持级联) .
我建议从这里开始:
https://loopback.io/doc/en/lb3/Defining-and-using-roles.html