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 和关系似乎已正确设置。