Node.js 环回保护嵌套关系

Node.js 环回保护嵌套关系,node.js,acl,loopback,Node.js,Acl,Loopback,我在保护嵌套关系时遇到问题。我有三种型号: 使用者 有许多地址 通过联系人拥有许多用户 地址 属于用户 联系人(用户到用户链接表) 属于用户 有一个用户 用户可以获取其地址信息: /users/{user\u id}/address 用户也可以访问联系人: /users/{user\u id}/contacts 但是用户也可以访问联系人地址: /users/{user_id}/contacts?filter={“include”:“addresses”} 我想将地址关系限制为$own

我在保护嵌套关系时遇到问题。我有三种型号:

  • 使用者
    • 有许多
      地址
    • 通过
      联系人拥有许多
      用户
  • 地址
    • 属于
      用户
  • 联系人(用户到用户链接表)
    • 属于
      用户
    • 有一个
      用户
  • 用户
    可以获取其
    地址
    信息:

    /users/{user\u id}/address

    用户
    也可以访问
    联系人

    /users/{user\u id}/contacts

    但是
    用户也可以访问
    联系人
    地址

    /users/{user_id}/contacts?filter={“include”:“addresses”}

    我想将
    地址
    关系限制为$owner


    临时解决方案:

    目前,我正在手动检查所有者是否是访问关系的人:

    Address.observe('access', function restrict(ctx, next) {
    
      if(_.isObject(ctx.query.where) && ctx.query.where.user_id && ctx.query.where.user_id.inq){
        var id = app.models.user.getCurrentUserId();
        if(validate(ctx.query.where.user_id.inq[0] === id, 'Unauthorization Access', "UNAUTHORIZATION_ACCESS", 403, next)){return;}
      }
    
      next();
    
    });
    

    创建的环回中存在一个问题,用于修复该问题并跟踪所有相关讨论: