There is already logic like this at the top of attempt.php. If the
teacher arrives at one of these pages for a student's attempt, for
example by clicking a link in the logs, then they should be redirected
to the review page to see the students attempt in its current state.
// Check login.
require_login($attemptobj->get_course(), false, $attemptobj->get_cm());
// Check login.
require_login($attemptobj->get_course(), false, $attemptobj->get_cm());
-// If this is not our own attempt, display an error.
+// Check that this attempt belongs to this user.
if ($attemptobj->get_userid() != $USER->id) {
if ($attemptobj->get_userid() != $USER->id) {
- print_error('notyourattempt', 'quiz', $attemptobj->view_url());
+ if ($attemptobj->has_capability('mod/quiz:viewreports')) {
+ redirect($attemptobj->review_url(null, $page));
+ } else {
+ throw new moodle_quiz_exception($attemptobj->get_quizobj(), 'notyourattempt');
+ }