Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const UserSchema = new mongoose.Schema({
- name: {
- first: String,
- last: String
- },
- // Each user can have multiple roles
- roles: [{
- type: String,
- enum: ['admin', 'instructor', 'teachingAssistant', 'student']
- }]
- });
- UserSchema.methods.hasRole = function (role) {
- return this.roles.indexOf(role) > -1;
- };
- const CourseSchema = new mongoose.Schema({
- name: { type: String, required: true },
- code: { type: String, required: true, unique: 1, uppercase: 1 },
- // Instructors teaching this course
- instructors: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
- // TAs teaching this course
- teachingAssistants: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
- // Students enrolled in the course
- students: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
- });
- exports.getCourses = (req, res) => {
- models.Course.find().sort('code').lean().exec((err, courses) => {
- res.render('admin/pages/courses', {
- bodyClass: 'courses',
- title: 'Courses',
- courses: _.filter(courses, course => {
- return req.user.hasRole('admin') ||
- course.instructors.indexOf(req.user.id) !== -1 ||
- course.teachingAssistants.indexOf(req.user.id) !== -1;
- })
- });
- });
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement