如何根据相关文档检查对文档的访问?

时间:2015-05-23 16:58:42

标签: node.js mongodb express permissions mongoose

我有以下文档架构:

var CalendarModel = mongoose.model('Calendar', mongoose.Schema({
    author: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'User',
        required: true
    },
    rooms: [{
        _id: {type: mongoose.Schema.Types.ObjectId},
        title: {type: String}
    }]
}));

var EventModel = mongoose.model('Event', mongoose.Schema({
    room: {
        type: mongoose.Schema.Types.ObjectId,
        required: true
    },
    startTime: {
        type: Date
    },
    endTime: {
        type: Date
    }
}));

每个事件都与他们的身份相关的特定房间。我有以下几种情况:

  • 用户可以创建/更新/删除/编辑活动
  • 用户可以编辑房间(仅限标题)

当用户发出查询以执行案例时,我需要检查访问权限以执行操作。

我们假设用户可以通过_id删除一些事件,如果他是事件与特定房间相关的日历的所有者,他就可以。

当用户尝试删除事件时,检查写入的最佳做法是什么?

编辑:基本上我正在寻找为每个用户的日历存储权限的最佳做法,并快速检查访问权限。我知道每次用户进行操作(读/编辑等)时我都可以查询mongo,但这是开销。所以我需要更好的解决方案来存储应用程序状态

0 个答案:

没有答案