我有一个拥有房屋的用户(几个用户可以拥有房屋),房屋可以有多个家具。
CustomUser.json关系:
"houses": {
"type": "hasAndBelongsToMany",
"model": "House",
"foreignKey": "houseId"
}
House.json关系:
"furnitures": {
"type": "hasAndBelongsToMany",
"model": "Furniture",
"foreignKey": ""
},
"customUsers": {
"type": "hasAndBelongsToMany",
"model": "CustomUser",
"foreignKey": ""
}
我的ACL很简单,房屋和家具的外观如下所示:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "admin",
"permission": "ALLOW"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
现在,为用户访问房屋可以很好地工作,但由于它们属于房屋(房屋是所有者),因此用户不会列出其家具。如何解决此最简单的方法?最好的办法就是以某种方式定义用户在整个房屋中拥有家具吗?但是,家具必须属于房屋(因为多个用户可以拥有房屋)。
编写我自己的角色解析器使这一过程变得非常灵活,在角色解析器中,我必须做出逻辑来找到原始的父级,并确保没有死关(因为LB还不支持层叠)。
我建议从这里开始:
https://loopback.io/doc/zh/lb3/Defining-and-using-roles.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句