diff --git a/app/core/Router.coffee b/app/core/Router.coffee index 8c034c3df..d03befb65 100644 --- a/app/core/Router.coffee +++ b/app/core/Router.coffee @@ -147,28 +147,30 @@ module.exports = class CocoRouter extends Backbone.Router 'seen': go('HomeView') 'SEEN': go('HomeView') - 'students': go('courses/CoursesView') - 'students/update-account': go('courses/CoursesUpdateAccountView') - 'students/:classroomID': go('courses/ClassroomView', { studentsOnly: true }) - 'students/:courseID/:courseInstanceID': go('courses/CourseDetailsView', { studentsOnly: true }) + 'students': go('courses/CoursesView', { redirectTeachers: true }) + 'students/update-account': go('courses/CoursesUpdateAccountView', { redirectTeachers: true }) + 'students/:classroomID': go('courses/ClassroomView', { redirectTeachers: true, studentsOnly: true }) + 'students/:courseID/:courseInstanceID': go('courses/CourseDetailsView', { redirectTeachers: true, studentsOnly: true }) 'teachers': redirect('/teachers/classes') - 'teachers/classes': go('courses/TeacherClassesView', { teachersOnly: true }) - 'teachers/classes/:classroomID': go('courses/TeacherClassView', { teachersOnly: true }) - 'teachers/courses': go('courses/TeacherCoursesView') - 'teachers/course-solution/:courseID/:language': go('teachers/TeacherCourseSolutionView') - 'teachers/demo': go('teachers/RequestQuoteView') + 'teachers/classes': go('courses/TeacherClassesView', { redirectStudents: true, teachersOnly: true }) + 'teachers/classes/:classroomID': go('courses/TeacherClassView', { redirectStudents: true, teachersOnly: true }) + 'teachers/courses': go('courses/TeacherCoursesView', { redirectStudents: true }) + 'teachers/course-solution/:courseID/:language': go('teachers/TeacherCourseSolutionView', { redirectStudents: true }) + 'teachers/demo': go('teachers/RequestQuoteView', { redirectStudents: true }) 'teachers/enrollments': redirect('/teachers/licenses') - 'teachers/licenses': go('courses/EnrollmentsView', { teachersOnly: true }) - 'teachers/freetrial': go('teachers/RequestQuoteView') + 'teachers/licenses': go('courses/EnrollmentsView', { redirectStudents: true, teachersOnly: true }) + 'teachers/freetrial': go('teachers/RequestQuoteView', { redirectStudents: true }) 'teachers/quote': redirect('/teachers/demo') - 'teachers/resources': go('teachers/ResourceHubView') - 'teachers/resources/:name': go('teachers/MarkdownResourceView') + 'teachers/resources': go('teachers/ResourceHubView', { redirectStudents: true }) + 'teachers/resources/:name': go('teachers/MarkdownResourceView', { redirectStudents: true }) 'teachers/signup': -> return @routeDirectly('teachers/CreateTeacherAccountView', []) if me.isAnonymous() + return @navigate('/students', {trigger: true, replace: true}) if me.isStudent() and not me.isAdmin() @navigate('/teachers/update-account', {trigger: true, replace: true}) 'teachers/update-account': -> return @navigate('/teachers/signup', {trigger: true, replace: true}) if me.isAnonymous() + return @navigate('/students', {trigger: true, replace: true}) if me.isStudent() and not me.isAdmin() @routeDirectly('teachers/ConvertToTeacherAccountView', []) 'test(/*subpath)': go('TestView') @@ -186,6 +188,10 @@ module.exports = class CocoRouter extends Backbone.Router @navigate e, {trigger: true} routeDirectly: (path, args=[], options={}) -> + if options.redirectStudents and me.isStudent() and not me.isAdmin() + return @navigate('/students', {trigger: true, replace: true}) + if options.redirectTeachers and me.isTeacher() and not me.isAdmin() + return @navigate('/teachers', {trigger: true, replace: true}) if options.teachersOnly and not (me.isTeacher() or me.isAdmin()) return @routeDirectly('teachers/RestrictedToTeachersView') if options.studentsOnly and not (me.isStudent() or me.isAdmin())