Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Looback:配置acl和关系以列出属于已使用日志的所有对象_Javascript_Node.js_Foreign Keys_Acl_Loopback - Fatal编程技术网

Javascript Looback:配置acl和关系以列出属于已使用日志的所有对象

Javascript Looback:配置acl和关系以列出属于已使用日志的所有对象,javascript,node.js,foreign-keys,acl,loopback,Javascript,Node.js,Foreign Keys,Acl,Loopback,我正试图建立一个环回项目,但我遇到了一个我无法解决的基本问题 因此,我基本上得到了一个自定义用户模型,它定义了以下关系和ACL: "relations": { ... "projects": { "type": "hasMany", "model": "project", "foreignKey": "userId" } } "acls": [ { "accessType": "*", "principal

我正试图建立一个环回项目,但我遇到了一个我无法解决的基本问题

因此,我基本上得到了一个自定义用户模型,它定义了以下关系和ACL:

"relations": {
   ...
    "projects": {
      "type": "hasMany",
      "model": "project",
      "foreignKey": "userId"
    }
}
"acls": [
    {
      "accessType": "*",
      "principalType": "ROLE",
      "principalId": "$everyone",
      "permission": "DENY"
    },
    {
      "accessType": "READ",
      "principalType": "ROLE",
      "principalId": "$owner",
      "permission": "ALLOW"
    }
]
以及使用属性定义的“项目”模型:

"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"
    }
]
首先,令我惊讶的是,当我在登录时提交帖子/项目时,我希望外键自动放入对象中,但看起来这必须手动完成。我想这是正常的,我想我对框架的期望太高了

也就是说,我一直在努力列出登录用户拥有的所有项目。执行GET/projects/{id},其中{id}是属于已登录用户的对象。当{id}指向一个不属于登录用户的对象时,我得到了一个401

但是,我当时还以为running/projects会返回登录用户拥有的所有项目,但会向我抛出一个401

我错过了什么?我的ACL设置是否错误?我用错方法了吗?我试着放置一个类似{“where”:{“userId”:“myId”}的过滤器,但没有成功。我还尝试了另一个端点/user/myId/projects,但没有更好的运气


谢谢

所以我想我只是把环回搞错了,GET/projects不是正确的调用,而是GET/users/{userId}/projects。ACL和关系似乎设置正确。

所以我想我只是得到了回送错误,GET/projects不是正确的调用,而是GET/users/{userId}/projects。ACL和关系似乎设置正确。

您可以检查您的
model config.json
以确保内置的
User
模型不是公共的吗?可能是您将路由发送到它,而不是自定义的
用户
模型。@Ivan Schwarz感谢您的回复,用户未定义为公共用户。这是它的def“User”:{“dataSource”:“db”,“public”:false,“options”:{“realmRequired”:true,“realmDelimiter”:“}}}1)根据检查,
$owner
仅对路径上有
:id
的远程方法执行,例如,
GET/projects/:id
。2)
GET/user/:id/projects
返回401,因为它遵循
user
模型上的ACL,并且这些ACL不允许列出项目。您正在寻找允许
\uuuuu获取\uuuuu项目
属性。是否可以检查
模型配置.json
以确保内置的
用户
模型不是公共的?可能是您将路由发送到它,而不是自定义的
用户
模型。@Ivan Schwarz感谢您的回复,用户未定义为公共用户。这是它的def“User”:{“dataSource”:“db”,“public”:false,“options”:{“realmRequired”:true,“realmDelimiter”:“}}}1)根据检查,
$owner
仅对路径上有
:id
的远程方法执行,例如,
GET/projects/:id
。2)
GET/user/:id/projects
返回401,因为它遵循
user
模型上的ACL,并且这些ACL不允许列出项目。您正在寻找允许
\uuuuuu获取\uuuu项目
属性。