更新Meteor.users

时间:2013-09-26 12:10:33

标签: meteor

我已经为用户创建了一个表单来更新他们的个人资料。当我提交表格时,我收到了[403]错误。

Not permitted. Untrusted code may only update documents by ID.

我的问题是,如果我打算使用Meteor.users.allow,在哪个文件/目录中 - 我会编写这段代码吗?

谢谢, 森

1 个答案:

答案 0 :(得分:17)

您获得的错误不是您的允许/拒绝规则的结果。如果是,您将直接获得“拒绝访问”错误。

更新用户时(以及制定正确的allow规则),您需要通过_id更新用户 - 尤其是在客户端更新用户时。

所以而不是

Meteor.users.update({name: "etc"}, {$set:..});

您需要将其拆分为两个,一个用于获取_id,然后一个用于更新您的文档。

var user = Meteor.users.findOne({name: 'etc'});

Meteor.users.update({_id: user._id}, {$set:..});

规则在客户端上,您只能在更新时使用_id查找文档。