2016-09-20 101 views
3

我遇到保護嵌套關係的問題。我有三個型號:環回保護嵌套關係

  1. 用戶
    • 有許多Addresses
    • 有許多Users通過Contacts
  2. 地址
    • 屬於User
  3. 聯繫方式(用戶到用戶鏈接表)
    • 屬於User
    • 有一個User

一個User可以得到他們的Address信息:

/users/{user_id}/address

一個User也可以到達那裏Contacts

/users/{user_id}/contacts

一個User也可以到達那裏ContactsAddresses

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

我想限制Addresses相對於$所有者


臨時解決方法:

爲現在我手動檢查,看看主人是一個訪問的關係:

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(); 

}); 

回答