MDL-61407 question: Allow formatters to ignore caps

This commit is contained in:
Andrew Nicols 2018-04-15 17:29:04 +08:00
parent 04507546ec
commit cc98914e85
3 changed files with 14 additions and 6 deletions

View file

@ -2073,7 +2073,7 @@ function question_pluginfile($course, $context, $component, $filearea, $args, $f
} }
// export data to moodle file pool // export data to moodle file pool
if (!$content = $qformat->exportprocess(true)) { if (!$content = $qformat->exportprocess()) {
send_file_not_found(); send_file_not_found();
} }

View file

@ -793,11 +793,13 @@ class qformat_default {
} }
/** /**
* Do the export * Perform the export.
* For most types this should not need to be overrided * For most types this should not need to be overrided.
* @return stored_file *
* @param bool $checkcapabilities Whether to check capabilities when exporting the questions.
* @return string The content of the export.
*/ */
public function exportprocess() { public function exportprocess($checkcapabilities = true) {
global $CFG, $OUTPUT, $DB, $USER; global $CFG, $OUTPUT, $DB, $USER;
// get the questions (from database) in this category // get the questions (from database) in this category
@ -857,7 +859,7 @@ class qformat_default {
// export the question displaying message // export the question displaying message
$count++; $count++;
if (question_has_capability_on($question, 'view')) { if (!$checkcapabilities || question_has_capability_on($question, 'view')) {
$expout .= $this->writequestion($question, $contextid) . "\n"; $expout .= $this->writequestion($question, $contextid) . "\n";
} }
} }

View file

@ -1,5 +1,11 @@
This files describes API changes for code that uses the question API. This files describes API changes for code that uses the question API.
=== 3.5 ===
1) The question format exportprocess function now adds a
$checkcapabilities boolean to allow questions to be exported in
certain circumstances.
=== 3.2 === === 3.2 ===
1) The following renderers have been deprecated in favour of the renderable 1) The following renderers have been deprecated in favour of the renderable