我正在使用meteor-roles
个软件包并静态创建用户admin@example.com,normal @ example.com,.....
NOW我有一个用户可以注册的注册页面。最初我通过以下代码在客户端创建帐户,我正在使用coffeescritp:
Accounts.createUser
email: email
password: password
通过这些我可以创建新用户。现在,我如何将角色分配给新创建的用户。我有角色 - 管理员,普通用户,管理用户。 在做这些时
id = Meteor.userId()
roles = "admin"
Roles.addUsersToRoles id, roles
我收到错误“Exception while delivering result of invoking 'createUser' Error {} Error: Missing 'users' param
如何动态分配角色。 提前谢谢。!!!
答案 0 :(得分:2)
如果您分配角色的用户ID也是当前用户,则只能使用Meteor.userId()
。在尝试使用Meteor.userLoginWith*()
之前,您需要致电Roles.addUsersToRoles(Meteor.userId(), roles)
。
我建议创建用户,分配角色,然后将其登录。如果在分配适当角色之前登录用户,则特定于角色的路由,允许函数和发布函数可能无法正常运行。 / p>
我建议创建用户:
var userId = Accounts.createUser({
username: 'username',
email: 'email@email.com',
password: 'passwordString',
profile: {}
});
然后将用户添加到相应的角色:
var roles = ['admin', 'roleName'];
Roles.addUsersToRoles(userId, roles);
然后在分配角色后最终登录。