我已经安装了以下智能包:
standard-app-packages
autopublish
insecure
preserve-inputs
bootstrap-3
accounts-base
accounts-password
jquery
accounts-ui-bootstrap-3
iron-router
我正在尝试更新用户的电子邮件地址,因为我已经安装了不安全的自动发布包,我想我可以这样做:
Template.settings.events({
'click #update': function (evt, tmpl) {
evt.preventDefault();
var email = tmpl.find("#inputEmail").value;
Meteor.users.update({_id:Meteor.userId()}, {$set:{"emails":[{address:email}]}});
}
});
但是我一直得到:update failed: Access denied
也许这个文档中的注释对你有帮助。
默认情况下允许用户使用Accounts指定他们自己的配置文件字段。createUser并使用Meteor.users.update修改它。要允许用户编辑其他字段,请使用Meteor.users.allow。禁止用户修改用户文档
您尝试更改电子邮件字段。首先,电子邮件字段应该在配置文件文件夹中(如果您想公开电子邮件)。所以你需要输入
$set: {
profile: {
emails: {
}
}
}
如果你改变了配置文件之外的另一个字段,你必须定义allow-rules