所以,我有一个初始化文件,它在启动时运行,调用以下服务器端Meteor功能:
createAdminUser : function () {
var userObject = {
email: "admin@test.com",
password: "abc123",
profile: { first_name: "admin", last_name: "user"}
};
Accounts.createUser(userObject, function(){
});
Roles.addUsersToRoles(userObject, 'admin');
}
用户成功创建,但当我进入javascript控制台检查当前用户是否启用了“admin”角色时,我得到false返回:
input -> Roles.userIsInRole(Meteor.user(), 'admin')
output -> false
文档https://github.com/alanning/meteor-roles#user-content-changes表示只应在创建用户后调用Role函数,这是(我很确定)我在做什么,不是吗?
如果有人能说清楚我的愚蠢,我会非常感激。
答案 0 :(得分:0)
Roles.addUsersToRoles(id,' Role')的第一个参数需要是db中User对象的id(并由Accounts.createUser返回)。
试试这个:
var userObject = {
email: "admin@test.com",
password: "abc123",
profile: { first_name: "admin", last_name: "user"}
};
var userId = Accounts.createUser(userObject);
Roles.addUsersToRoles(userId, 'admin');