Loopback:配置acl和relations列出所有属于logged used的对象
Looback: configure acl and relations to list all objects belonging to logged used
我正在尝试设置环回项目,但我 运行 遇到了一个我无法弄清楚的基本问题。
所以我基本上得到了一个使用以下关系和 acls 定义的自定义用户模型:
"relations": {
...
"projects": {
"type": "hasMany",
"model": "project",
"foreignKey": "userId"
}
}
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
还有一个 'project' 模型定义了以下属性:
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "userId"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "create"
}
]
首先,令我惊讶的是,在登录后提交 POST /projects 时,我希望外键自动放入对象中,但看起来必须手动完成.我想这很正常,我想我对框架的期望太高了。
也就是说,我一直在努力列出登录用户拥有的所有项目。执行 GET /projects/{id} 并且 {id} 是属于登录用户的对象。当 {id} 指向一个不属于登录用户的对象时,我得到了预期的 401。
但是,我原以为 运行 /projects 会 return 已登录用户拥有的所有项目,但却向我抛出 401。
我错过了什么?我的 ACL 设置有误吗?我使用错误的方法吗?我尝试放置一个像 '{"where":{"userId":"myId"}}' 这样的过滤器,但没有成功。我也尝试了另一个端点 /user/myId/projects 但没有更好的运气。
谢谢
所以我想我只是得到了环回错误,GET /projects 不是正确的调用而是 GET /users/{userId}/projects。 ACL 和关系似乎已正确设置。
我正在尝试设置环回项目,但我 运行 遇到了一个我无法弄清楚的基本问题。
所以我基本上得到了一个使用以下关系和 acls 定义的自定义用户模型:
"relations": {
...
"projects": {
"type": "hasMany",
"model": "project",
"foreignKey": "userId"
}
}
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "READ",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]
还有一个 'project' 模型定义了以下属性:
"relations": {
"user": {
"type": "belongsTo",
"model": "user",
"foreignKey": "userId"
}
},
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
},
{
"accessType": "EXECUTE",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW",
"property": "create"
}
]
首先,令我惊讶的是,在登录后提交 POST /projects 时,我希望外键自动放入对象中,但看起来必须手动完成.我想这很正常,我想我对框架的期望太高了。
也就是说,我一直在努力列出登录用户拥有的所有项目。执行 GET /projects/{id} 并且 {id} 是属于登录用户的对象。当 {id} 指向一个不属于登录用户的对象时,我得到了预期的 401。
但是,我原以为 运行 /projects 会 return 已登录用户拥有的所有项目,但却向我抛出 401。
我错过了什么?我的 ACL 设置有误吗?我使用错误的方法吗?我尝试放置一个像 '{"where":{"userId":"myId"}}' 这样的过滤器,但没有成功。我也尝试了另一个端点 /user/myId/projects 但没有更好的运气。
谢谢
所以我想我只是得到了环回错误,GET /projects 不是正确的调用而是 GET /users/{userId}/projects。 ACL 和关系似乎已正确设置。