我在一个集合上有一个集合钩子,以产生一个“空日历”。这或多或少是一个需要保持不变的基础,也就是说,拒绝更新。
Players.after.insert({
// creates an empty calendar
Calendars.insert({
playerId: this._id
});
});
在大多数日历中,更新都是完全可以的,但是在这些通过此挂钩插入的特定日历中,我想拒绝更新。
Calendars.deny({
update: function (userId, doc) {
// don't allow "blank" calendar to be updated
}
});
使用meteor管理拒绝集合中文档子集更新的安全方法是什么?
答案 0 :(得分:3)
扩展我的评论,看到没有人回答。一种方法是在空白'上设置一个标记。记录。例如:
Players.after.insert({
// creates an empty calendar
Calendars.insert({
playerId: this._id
preventUpdate: true
});
});
你的拒绝功能可以是:
Calendars.deny({
update: function (userId, doc) {
return doc.preventUpdate === true
}
});
这应该是安全的,因为deny函数中的doc
参数是来自数据库的未修改文档,因此无法从客户端进行篡改。