我有一个保护嵌套关系的问题 . 我有三个型号:
-
用户
-
有很多
Addresses
-
有很多
Users
到Contacts
-
地址
-
只属于
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 回答
环回创建的问题是修复它并跟踪所有相关的讨论:https://github.com/strongloop/loopback/issues/1362