3
我遇到保護嵌套關係的問題。我有三個型號:環回保護嵌套關係
- 用戶
- 有許多
Addresses
- 有許多
Users
通過Contacts
- 有許多
- 地址
- 屬於
User
- 屬於
- 聯繫方式(用戶到用戶鏈接表)
- 屬於
User
- 有一個
User
- 屬於
一個User
可以得到他們的Address
信息:
/users/{user_id}/address
。
一個User
也可以到達那裏Contacts
:
/users/{user_id}/contacts
。
但一個User
也可以到達那裏Contacts
Addresses
:
/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();
});