环回保护嵌套关系

时间:2016-09-20 12:00:04

标签: node.js acl loopback

我遇到了保护嵌套关系的问题。我有三种模式:

  1. 用户
    • 有很多Addresses
    • 有很多UsersContacts
  2. 地址
    • 属于User
  3. 通讯录(用户对用户链接表)
    • 属于User
    • 有一个User
  4. User可以获取Address信息:

    /users/{user_id}/address

    User也可以到达Contacts

    /users/{user_id}/contacts

    User也可以到达Contacts Addresses

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

    我想将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();
    
    });
    

1 个答案:

答案 0 :(得分:1)

环回创建的问题是修复它并跟踪所有相关的讨论: https://github.com/strongloop/loopback/issues/1362