diff --git a/lib/questionlib.php b/lib/questionlib.php index f65e1da3042..4eb8df6e182 100644 --- a/lib/questionlib.php +++ b/lib/questionlib.php @@ -1242,9 +1242,12 @@ function question_apply_penalty_and_timelimit(&$question, &$state, $attempt, $cm // deal with timelimit if ($cmoptions->timelimit) { // We allow for 5% uncertainty in the following test - if (($state->timestamp - $attempt->timestart) > ($cmoptions->timelimit * 63) && - !has_capability('mod/quiz:ignoretimelimits', get_context_instance(CONTEXT_MODULE, get_coursemodule_from_instance('quiz', $cmoptions->id)->id), $attempt->userid, false)) { - $state->grade = 0; + if ($state->timestamp - $attempt->timestart > $cmoptions->timelimit * 63) { + $cm = get_coursemodule_from_instance('quiz', $cmoptions->id); + if (!has_capability('mod/quiz:ignoretimelimits', get_context_instance(CONTEXT_MODULE, $cm->id), + $attempt->userid, false)) { + $state->grade = 0; + } } }