我不能让allaning:角色包工作

时间:2015-10-12 11:08:35

标签: javascript meteor packages roles meteor-accounts

所以,我有一个初始化文件,它在启动时运行,调用以下服务器端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函数,这是(我很确定)我在做什么,不是吗?

如果有人能说清楚我的愚蠢,我会非常感激。

1 个答案:

答案 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');