【发布时间】:2017-07-21 23:46:31
【问题描述】:
以下是我的角色和职责收集文件
[{
"_id": {
"$oid": "58b6c380734d1d48176c9e69"
},
"role": "Admin",
"resource": [
{
"id": "blog",
"permissions": [
"read",
"update",
"delete"
]
},
{
"id": "user",
"permissions": [
"create",
"read",
"update",
"delete"
]
},
{
"id": "journal",
"permissions": [
"create",
"read",
"update",
"delete"
]
}
]
},
{
"_id": {
"$oid": "58b7db3cf36d285019ea175f"
},
"role": "Manager",
"resource": [
{
"id": "blog",
"permissions": [
"read",
"update",
"delete"
]
},
{
"id": "user",
"permissions": [
"create",
"read",
"update",
"delete"
]
},
{
"id": "journal",
"permissions": [
"create",
"read",
"update",
"delete"
]
}
]
}]
我想检查管理员是否有创建权限。 我写过这样的查询
var check = { $and: [ { 'role':req.body.role, }, { 'resource.id':'blog'},{'resource.permissions':'create'} ] }
Rolesandresponsibilitie.find(check).populate('user', 'displayName').exec(function(err, rolesandresponsibilities) {
if (err) return next(err);
if (! rolesandresponsibilities) return res.status(404).send('Not Found'); };
return res.status(200).send('Found'); }
});
我越来越不确定
我的期望:
例如1:
角色 = 管理员
id = 博客
权限 = 创建
我应该得到响应 Not Found 因为管理员只有
“权限”:[ “读”, “更新”, “删除” ]
3 个以上权限
示例 2:
角色 = 管理员
id = 博客
权限 = 读取
我应该得到响应,因为管理员具有读取权限
【问题讨论】:
标签: javascript node.js mongodb express