0
我有一個教室的模型,看起來像這樣:快速返回「用戶無權」從其他用戶修改對象時
/**
* Classroom Schema
*/
var ClassroomSchema = new Schema({
created: {
type: Date,
default: Date.now
},
participants: [{
type: Schema.ObjectId,
ref: 'User'
}],
lesson: {
type: Schema.ObjectId,
ref: 'Lesson',
required: 'Define a lesson for this classroom',
},
user: {
type: Schema.ObjectId,
ref: 'User'
},
currentTaskIndex: {
type: Number,
default: 0
},
});
正如你可以看到,該模型保留對已創建的用戶一個參考課堂(用戶),它也有很多參與者(更多用戶)。
我試圖添加功能以允許其他用戶(不是課堂的創建者)通過向參與者字段中的新用戶發送PUT請求到教室API來加入課堂。然而,由於用戶發送的請求是不是誰創建對象的一個,快速返回一個403(禁止):
exports.hasAuthorization = function(req, res, next) {
if (req.classroom.user.id !== req.user.id) {
return res.status(403).send('User is not authorized');
}
next();
};
什麼是最好的方法/模式來解決這個問題,允許用戶加入由另一個創建教室用戶,但不要執行其他操作,如刪除對象。其他字段可能會被其他參與者更新,如currentTaskIndex。
感謝您的幫助!