Meteor - 添加用户自定义字段的方法不起作用

时间:2016-05-19 05:48:20

标签: javascript meteor methods

我正在尝试添加自定义" isContributor"通过Meteor.Users的方法字段但不知何故它不添加字段。 (我甚至在对谁可以进行此更新的任何安全检查之前说话。)

在客户端,我有以下事件:

Template.Articles.events({
'click #BeContributor': function() {
    userId = Meteor.userId();
    Meteor.call('setContributorState', userId);
}

});

并在server / main.js中进行以下操作:

Meteor.methods({
    setContributorState: function(userId) {
        Meteor.users.update(userId, {
          $set: {
                isContributor: true
                }
        });
    }
});

不知何故,它不会为我的用户添加字段。没有控制台或服务器错误。我想我错过了一些补充字段的权利。有什么想法吗?

提前致谢。

---编辑---

实际上该方法正在运行,但我没有公布结果,因此我无法在MeteorToys中检查该字段是否已更新。以下出版物有效:

Meteor.publish(null, function(){
    return Meteor.users.find({_id: this.userId}, {fields: {isContributor: 1}});
});

发现于Publishing custom Meteor.user() fields

1 个答案:

答案 0 :(得分:1)

如果要修改登录用户的参与者状态,则无需传递任何参数。这是一个安全漏洞。服务器具有调用请求的信息。

Meteor.methods({
setContributorState: function() {
    Meteor.users.update({_id:this.userId}, {
      $set: {
            isContributor: true
            }
    });
}
});