0

私はmeteor-rolesパッケージを使用しており、静的にユーザーadmin@example.com、normal@example.com、.....を作成します.今、ユーザーがサインアップできるサインアップページがあります.最初に、クライアントのコードに従ってアカウントを作成しますサイド、私は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

役割を動的に割り当てるにはどうすればよいですか。前もって感謝します。!!!

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 に答える