我正在尝试添加自定义" 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}});
});
答案 0 :(得分:1)
如果要修改登录用户的参与者状态,则无需传递任何参数。这是一个安全漏洞。服务器具有调用请求的信息。
Meteor.methods({
setContributorState: function() {
Meteor.users.update({_id:this.userId}, {
$set: {
isContributor: true
}
});
}
});