I tried to add an attribute \'permission\' to all newly created users. But it somehow doesn\'t work. I use this code to add the attribute
Accounts.onCreateU
You create it properly. The problem is that client does not see this value. Taken from documentation:
By default the server publishes username, emails, and profile
So you need to publish / subscribe for the additional fields.
Server:
Meteor.publish('userData', function() {
if(!this.userId) return null;
return Meteor.users.find(this.userId, {fields: {
permission: 1,
}});
});
Client:
Deps.autorun(function(){
Meteor.subscribe('userData');
});
Meteor.users.findOne(Meteor.userId)
should be changed to Meteor.users.findOne(Meteor.userId())
.
Also, I'm not sure what fields on the user object that actually are transmitted to the client. You might need to changeuser.permission = 'default'
to options.profile.permission = 'default'
so your Accounts.onCreateUser
will look like this:
Accounts.onCreateUser(function(options, user) {
if(!options.profile){
options.profile = {}
}
options.profile.permission = 'default'
if (options.profile)
user.profile = options.profile;
return user;
});