MDL-28687 questions avoid fatal errors when reviewing attempts at deleted questions.
authorTim Hunt <T.J.Hunt@open.ac.uk>
Tue, 16 Aug 2011 10:36:54 +0000 (11:36 +0100)
committerTim Hunt <T.J.Hunt@open.ac.uk>
Thu, 18 Aug 2011 12:59:07 +0000 (13:59 +0100)
lib/questionlib.php

index fe52dfe..446fa95 100644 (file)
@@ -1343,6 +1343,11 @@ function question_has_capability_on($question, $cap, $cachecat = -1) {
         }
         $question = $questions[$question];
     }
+    if (empty($question->category)) {
+        // This can happen when we have created a fake 'missingtype' question to
+        // take the place of a deleted question.
+        return false;
+    }
     if (!isset($categories[$question->category])) {
         if (!$categories[$question->category] = $DB->get_record('question_categories',
                 array('id'=>$question->category))) {