首页 文章

环回保护嵌套关系

提问于
浏览
3

我有一个保护嵌套关系的问题 . 我有三个型号:

  • 用户

  • 有很多 Addresses

  • 有很多 UsersContacts

  • 地址

  • 只属于 User

  • 联系人(用户到用户链接表)

  • 属于 User

  • 有一个 User

User 可以获取他们的 Address 信息:

/users/{user_id}/address .

User 也可以到达那里 Contacts

/users/{user_id}/contacts .

But a User 也可以到达 Contacts Addresses

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

我想限制 Addresses$owner 的关系 .


Temporary solution:

现在我手动检查以查看所有者是否是访问该关系的人:

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 回答

相关问题