创建新帐户时无法检索用户ID

时间:2016-06-03 09:28:28

标签: javascript meteor

我不知道为什么在创建新帐户并为该用户添加角色时无法检索用户ID。

methods.js:更新和插入新帐户驱动程序的方法,我将为其分配角色' driver'对于每个新帐户,注册新帐户都会成功,但添加角色不起作用

    import { Meteor } from 'meteor/meteor';
    import { Accounts } from 'meteor/accounts-base';
    import { CONST } from '../../common/constants.js';
    import { Roles } from 'meteor/alanning:roles';

    Meteor.methods({
      updateUserProfile: (newProfile) => {
        const userId = Meteor.userId();
        // var isEmailChanged = currentProfile ?
        //     newProfile.email != currentProfile.email :

        Meteor.users.update(userId, {
          $set: {
            profile: newProfile,
          },
        }, {
          validationContext: 'updateUserProfile',
        });


      },

      createDriver: (newUser) => {
        var id =Accounts.createUser({
          username: newUser.username,
          email: newUser.email,
          password: newUser.password,
          profile: newUser.profile,
         roles: CONST.USER_ROLES.DRIVER,
        });
        //console.log(Meteor.userId());
         Roles.addUsersToRoles(id, roles);
      },
    });

驱动 - join.js

Meteor.call('createDriver', data, (error) => {
      if (error) {
        Session.set(SESSION.ERROR, error);
      } else {
        FlowRouter.go('/s/driver/vehicles');  // TODO : replace with redirection by root name
      }
    });

角色

    roles: {
    type: [String],
    optional: true,
    allowedValues: [CONST.USER_ROLES.CLIENT, CONST.USER_ROLES.DRIVER, CONST.USER_ROLES.ADMIN],
    defaultValue: CONST.USER_ROLES.CLIENT,
  },

1 个答案:

答案 0 :(得分:0)

如果将其添加到服务器怎么办?

Meteor.users.after.insert(function (userId, doc) {
   Roles.addUsersToRoles(doc._id, [CONST.USER_ROLES.DRIVER])
});

在添加新用户时也删除roles属性,但它不起作用。

但是你的代码应该也可以。 Roles.addUsersToRoles(id, roles);中的角色是什么?