有人可以帮我解决这个问题吗?我想分配多个用户成为每个类别的管理员。
例如我有收藏品:
User:{emily, bob, roberts, alex}
Category:{Laptop, Computer, Tablet, Network}
如何为emily分配角色以成为笔记本电脑和计算机的管理员?此外,鲍勃和亚历克斯是网络管理员?
你的善意和帮助真的很感激。谢谢.. :))
答案 0 :(得分:0)
我知道这有点老了。但如果有人在搜索类似的内容。
让我们假设您的用户在这样的用户集合中。
var emily = Meteor.users.findOne({name: "Emily"});
var bob = Meteor.users.findOne({name: "Bob"});
var roberts = Meteor.users.findOne({name: "Roberts"});
var alex = Meteor.users.findOne({name: "Alex"});
然后你可以把用户放到这样的角色:
Roles.addUsersToRoles(emily._id, ['Laptop', 'Computer'], 'admin');
Roles.addUsersToRoles(bob._id, ['Network'], 'admin');
Roles.addUsersToRoles(alex._id, ['Network'], 'admin');
如果您查看用户集合的Emily记录,您会看到Emily的角色:
"roles" : {
"admin" : [
"Laptop",
"Computer"
]
}
然后,如果您想检查用户是否为某个组的管理员,您可以尝试:
如果 Roles.userIsInRole(emily._id,'Laptop','admin')// == true Roles.userIsInRole(emily._id,'Network','admin')// == false Roles.userIsInRole(bob._id,'Laptop','admin')// == false Roles.userIsInRole(bob._id,'Network','admin')// == true
或来自模板
{{#if isInRole 'Computers' 'admin'}}
{{/if}}
如果您在db
中有类别var network_category = Categories.findOne({..})
Roles.userIsInRole(bob._id, network_category.name, 'admin') // == true