在Meteor.roles中插入错误
我正在使用meteor角色包在我的网页上进行授权。我定义了两个角色,一个是在Meteor.roles中插入错误,meteor,meteor-blaze,meteor-accounts,Meteor,Meteor Blaze,Meteor Accounts,我正在使用meteor角色包在我的网页上进行授权。我定义了两个角色,一个是学生角色,另一个是管理员角色。对于在我的网页上注册的所有新用户,我已使用以下帮助程序为他们分配了学生角色: Accounts.createUser({ email:email, password:password, profile:{ //profile includes fullname and surname fullname:fullname,
学生
角色,另一个是管理员
角色。对于在我的网页上注册的所有新用户,我已使用以下帮助程序为他们分配了学生
角色:
Accounts.createUser({
email:email,
password:password,
profile:{ //profile includes fullname and surname
fullname:fullname,
surname:surname
}
},
function(err){
if(err){
FlashMessages.sendError("There was an error");
} else {
FlashMessages.sendSuccess("Account Created");
Roles.addUsersToRoles( Meteor.userId(), 'Students' );
Router.go("/dashboard");
}
});
在尝试添加新用户后,该用户确实会被添加到meteor users集合中,并且角色会按预期分配。但控制台会返回以下错误:
insert失败:WriteError({“code”:11000,“index”:0,“errmsg”:“E11000重复键错误索引:meteor.roles.$name\u 1重复键:{:\“Students\”}”,“op”:{“name”:“Students”,“\u id”:“w3vnwkrjtne8tpbs”})
我无法理解这一错误,因为用户分配了角色并将被插入meteor集合。我认为它运行了两次。第一次插入成功时。第二次,它失败了,因为对象已经存在。您将上述代码放在哪里?@blueren上述代码是注册表的一部分,是相应模板的助手。一旦用户注册,即
FlashMessages.sendsucture(“帐户创建”)
,我调用角色。addUsersToRoles
为每个新用户分配一个角色。@blueren还通过角色向角色添加用户。addUsersToRoles
更新Meteor用户集合
以将角色信息包含到用户集合中。因此,我在服务器端助手中加入了Meteor.users.allow
规则。