Не удается добавить атрибут пользователя с помощью Accounts.onCreateUser

Я пытался добавить атрибутразрешение» всем вновь созданным пользователям. Но это как-то нет работа. Я использую этот код, чтобы добавить атрибут

 Accounts.onCreateUser(function(options, user) {
  user.permission = 'default';
  if (options.profile)
    user.profile = options.profile;
  return user;
});

Но когда я получаю объект пользователя на стороне клиента, я могуне вижу атрибута

u = Meteor.users.findOne(Meteor.userId)
u.permission
>undefined

Что я делаю неправильно?

Ответы на вопрос(2)

Решение Вопроса

что клиент не видит это значение. Взято издокументация:

По умолчанию сервер публикует имя пользователя, электронные письма и профиль

Поэтому вам необходимо опубликовать / подписаться на дополнительные поля.

Сервер:

Meteor.publish('userData', function() {
  if(!this.userId) return null;
  return Meteor.users.find(this.userId, {fields: {
    permission: 1,
  }});
});

Клиент:

Deps.autorun(function(){
  Meteor.subscribe('userData');
});

Meteor.users.findOne(Meteor.userId) должен быть изменен на.Meteor.users.findOne(Meteor.userId())

Также я'Я не уверен, какие поля в пользовательском объекте действительно передаются клиенту. Возможно, вам придется изменитьuser.permission = 'default' вoptions.profile.permission = 'default' Так что вашиAccounts.onCreateUser будет выглядеть так:

Accounts.onCreateUser(function(options, user) {
    if(!options.profile){
       options.profile = {}
    }
    options.profile.permission = 'default'
    if (options.profile)
        user.profile = options.profile;
    return user;
});
 user239325617 мая 2013 г., 13:11
Если я попробую по-своему, я получу эту ошибку:Cannot set property 'permission' of undefined
 Hubert OG31 июл. 2013 г., 09:11
Это'нет смысла добавлятьpermission флаг дляprofile, это доступно для записи пользователем!
 Martin17 мая 2013 г., 17:51
Сожалею. Выше должно работать.

Ваш ответ на вопрос