不使用不安全的软件包更新Meteor.users.update并自动发布

时间:2014-03-26 21:48:47

标签: meteor meteorite

我安装了以下智能包:

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}]}});
  }
});

但我一直得到:更新失败:访问被拒绝

1 个答案:

答案 0 :(得分:0)

Mabye文档中的这条评论可以帮助你。

  

默认情况下,允许用户使用Accounts.createUser指定自己的配置文件字段,并使用Meteor.users.update对其进行修改。要允许用户编辑其他字段,请使用Meteor.users.allow。禁止用户对其用户文档进行任何修改

您尝试更改电子邮件字段。首先,电子邮件字段应该是(如果您想将电子邮件公开)在配置文件文件夹中。所以你必须做类似

的事情
$set: {
        profile: {
            emails: {

            }
        }
    }

如果更改配置文件之外的其他字段,则必须定义allow-rules。