See Release Notes
Long Term Support Release
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. 13 // 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/>. 16 17 declare(strict_types=1); 18 19 namespace core_reportbuilder\reportbuilder\audience; 20 21 use MoodleQuickForm; 22 use core_reportbuilder\local\audiences\base; 23 use core_reportbuilder\local\helpers\database; 24 25 /** 26 * Administrators audience type 27 * 28 * @package core_reportbuilder 29 * @copyright 2022 Paul Holden <paulh@moodle.com> 30 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 31 */ 32 class admins extends base { 33 34 /** 35 * Add audience elements to the current form 36 * 37 * @param MoodleQuickForm $mform 38 */ 39 public function get_config_form(MoodleQuickForm $mform): void { 40 $mform->addElement('static', 'admins', get_string('siteadministrators', 'core_role')); 41 } 42 43 /** 44 * Return SQL to retrieve users that match this audience 45 * 46 * @param string $usertablealias 47 * @return array [$join, $select, $params] 48 */ 49 public function get_sql(string $usertablealias): array { 50 global $CFG, $DB; 51 52 $siteadmins = array_map('intval', explode(',', $CFG->siteadmins)); 53 [$select, $params] = $DB->get_in_or_equal($siteadmins, SQL_PARAMS_NAMED, database::generate_param_name() . '_'); 54 55 return ['', "{$usertablealias}.id {$select}", $params]; 56 } 57 58 /** 59 * Return name of this audience 60 * 61 * @return string 62 */ 63 public function get_name(): string { 64 return get_string('siteadministrators', 'core_role'); 65 } 66 67 /** 68 * Return description of this audience. 69 * 70 * @return string 71 */ 72 public function get_description(): string { 73 $siteadmins = array_map('fullname', get_admins()); 74 75 return $this->format_description_for_multiselect($siteadmins); 76 } 77 78 /** 79 * Whether the current user is able to add this audience 80 * 81 * @return bool 82 */ 83 public function user_can_add(): bool { 84 return is_siteadmin(); 85 } 86 87 /** 88 * Whether the current user is able to edit this audience 89 * 90 * @return bool 91 */ 92 public function user_can_edit(): bool { 93 return $this->user_can_add(); 94 } 95 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body