Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.33 KB | None | 0 0
  1. const UserSchema = new mongoose.Schema({
  2. name: {
  3. first: String,
  4. last: String
  5. },
  6. // Each user can have multiple roles
  7. roles: [{
  8. type: String,
  9. enum: ['admin', 'instructor', 'teachingAssistant', 'student']
  10. }]
  11. });
  12.  
  13. UserSchema.methods.hasRole = function (role) {
  14. return this.roles.indexOf(role) > -1;
  15. };
  16.  
  17. const CourseSchema = new mongoose.Schema({
  18. name: { type: String, required: true },
  19. code: { type: String, required: true, unique: 1, uppercase: 1 },
  20. // Instructors teaching this course
  21. instructors: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
  22. // TAs teaching this course
  23. teachingAssistants: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
  24. // Students enrolled in the course
  25. students: [{ type: mongoose.Schema.Types.ObjectId, ref: 'User' }],
  26. });
  27.  
  28. exports.getCourses = (req, res) => {
  29. models.Course.find().sort('code').lean().exec((err, courses) => {
  30. res.render('admin/pages/courses', {
  31. bodyClass: 'courses',
  32. title: 'Courses',
  33. courses: _.filter(courses, course => {
  34. return req.user.hasRole('admin') ||
  35. course.instructors.indexOf(req.user.id) !== -1 ||
  36. course.teachingAssistants.indexOf(req.user.id) !== -1;
  37. })
  38. });
  39. });
  40. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement