Merge branch 'MDL-72496-master_assert_tag' of https://github.com/call-learning/moodle
[moodle.git] / admin / tool / generator / lib.php
bloba27de5f3c4c225848e7830526c28f1729e4135c7
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
17 /**
18 * Generator tool functions.
20 * @package tool_generator
21 * @copyright David MonllaĆ³
22 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
25 defined('MOODLE_INTERNAL') || die();
27 /**
28 * Files support.
30 * Exits if the required permissions are not satisfied.
32 * @param stdClass $course course object
33 * @param stdClass $cm
34 * @param stdClass $context context object
35 * @param string $filearea file area
36 * @param array $args extra arguments
37 * @param bool $forcedownload whether or not force download
38 * @param array $options additional options affecting the file serving
39 * @return void The file is sent along with it's headers
41 function tool_generator_pluginfile($course, $cm, $context, $filearea, $args, $forcedownload, array $options = array()) {
43 // Only for admins or CLI.
44 if (!defined('CLI_SCRIPT') && !is_siteadmin()) {
45 die;
48 if ($context->contextlevel != CONTEXT_SYSTEM) {
49 send_file_not_found();
52 $fs = get_file_storage();
53 $file = $fs->get_file($context->id, 'tool_generator', $filearea, $args[0], '/', $args[1]);
55 // Send the file, always forcing download, we don't want options.
56 \core\session\manager::write_close();
57 send_stored_file($file, 0, 0, true);