我将角色检查纳入政策:
module.exports = function(req, res, next) {
var postId = req.param('postId');
var userId = req.session.user.id;
Post.findOne({id: postId})
.exec( function (err, post) {
if (err) { return next(err); }
if (!post) {
return res.notFound('Post not found');
}
if (post.author !== userId) {
return res.forbidden('Not the author');
}
next();
});
};
在PostController中,我需要再次获取帖子(并可能填充一些相关数据)
update: function (req, res) {
var postId = req.param('postId');
Post.findOne({id: postId}).populate('tags')
.exec( function (err, post) {
// Update the post here
我想知道是否有一种不错的方法只用一次从DB获取帖子记录?
答案 0 :(得分:1)
我会制定这项政策,以便彻底解决问题。实际查询,以便自动附加所有请求的用户条件。通过这种方法,您可以使用蓝图操作来获取所有内容。
我自己完成了这项工作,您可以查看代码https://github.com/tarlepp/Taskboard/blob/angular/backend%2Fapi%2Fservices%2FRightsGet.js#L460。
我希望这会有所帮助。