【问题标题】:I can't make allaning:roles package to work我不能让 allaning:roles 包工作
【发布时间】:2016-01-09 20:13:54
【问题描述】:

所以,我有一个在启动时运行的初始化文件,它调用以下服务器端 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'角色时,我得到了错误返回:

input -> Roles.userIsInRole(Meteor.user(), 'admin')
output -> false

文档https://github.com/alanning/meteor-roles#user-content-changes 说 Role 函数只能在创建用户之后调用,这就是(我很确定)我在做什么,不是吗?

如果有人能阐明我的愚蠢,我将非常感激。

【问题讨论】:

    标签: javascript meteor packages roles meteor-accounts


    【解决方案1】:

    Roles.addUsersToRoles(id, 'Role') 的第一个参数需要是数据库中 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');
    

    【讨论】:

    • 我已经尝试过了,但不幸的是结果是一样的。还有其他建议吗?
    • console.log(Meteor.user()) 说什么?
    猜你喜欢
    • 2014-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多