我有一个环回应用程序,每个客户都可以有自己的服务。因此,我需要客户只能看到,添加,编辑和删除它自己的服务。但无论我做什么,似乎客户要么可以看到所有用户的所有服务,要么没有人可以看到没有人的服务。
服务模型
"relations": {
"customer": {
"type": "belongsTo",
"model": "customer",
"foreignKey": "customerId"
}
}以及我所看到的alc:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$owner",
"permission": "ALLOW"
}
]但是如果它像这个服务的所有者,并且只获取/ /GET/{id}它是服务,但它不能获取所有服务?!?
如果我使用这个:
"acls": [
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$everyone",
"permission": "DENY"
},
{
"accessType": "*",
"principalType": "ROLE",
"principalId": "$authenticated",
"permission": "ALLOW"
}
]我已经得到了我需要的东西,但这是一个市长安全漏洞,因为每个客户都可以从所有其他客户那里获得所有服务。
发布于 2016-08-30 13:44:29
您需要在您的service模型中添加属性customerId,并且只有当$owner段存在于api中时,api才有效。
如果您的:id没有任何urls,则可以创建自定义角色解析器。
https://stackoverflow.com/questions/39195097
复制相似问题