0

我正在使用meteor-roles包并静态地创建用户 admin@example.com、normal@example.com、.....现在我有一个用户可以注册的注册页面。最初我通过以下代码在客户端创建帐户一边,我正在使用咖啡脚本:

  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

如何动态分配角色。先感谢您。!!!

4

1 回答 1

2

Meteor.userId()只有当您分配角色的用户 ID 也是当前用户时,您才能使用。在Meteor.userLoginWith*()尝试使用Roles.addUsersToRoles(Meteor.userId(), roles).

我建议创建用户,分配角色,然后登录。如果您在分配适当的角色之前登录用户,特定于角色的路由、允许功能和发布功能可能无法正常运行。

我建议创建用户:

var userId = Accounts.createUser({
  username: 'username',
  email: 'email@email.com',
  password: 'passwordString',
  profile: {}
}); 

然后将用户添加到适当的角色:

var roles = ['admin', 'roleName']; 
Roles.addUsersToRoles(userId, roles);

然后在分配了角色之后,最后让他们登录。

于 2013-10-02T23:11:38.730 回答