カスタム ユーザー フィールドを Meteor ユーザー オブジェクト ( Meteor.user
) に追加できません。ユーザーに「ステータス」フィールドを持たせたいのですが、それを「プロファイル」(つまり、profile.status) の下に入れ子にしたくはありません。(既に削除しましautopublish
た。)
フィールドをクライアントに問題なく公開できました
Meteor.publish("directory", function () {
return Meteor.users.find({}, {fields: {username: 1, status: 1}});
});
...しかし、ログインしたユーザーが自分の を更新できるようにする権限を設定できませんstatus
。
私が行った場合
Meteor.users.allow({
update: function (userId) {
return true;
}});
ユーザーは、すべてのユーザーのすべてModels.js,
のフィールドを編集できます。それはクールではない。
私は次のようなバリアントを試しました
Meteor.users.allow({
update: function (userId) {
return userId === Meteor.userId();
}});
と
Meteor.users.allow({
update: function (userId) {
return userId === this.userId();
}});
コンソールに Access Denied エラーが表示されます。
ドキュメンテーションはこれにいくらか対処していますが、十分な詳細には触れていません。私が犯しているばかげた間違いは何ですか?
(これはこのSOの質問に似ていますが、その質問はフィールドの公開方法のみを扱い、更新方法は扱いません。)