mirror of
https://github.com/moodle/moodle.git
synced 2025-04-13 04:22:07 +02:00
MDL-48107 tool_monitor: prevent site rule removal when deleting a course
This commit is contained in:
parent
cbc4ecc7f9
commit
884652378a
@ -53,13 +53,9 @@ class eventobservers {
|
||||
* @param \core\event\course_deleted $event The course deleted event.
|
||||
*/
|
||||
public static function course_deleted(\core\event\course_deleted $event) {
|
||||
$rules = rule_manager::get_rules_by_courseid($event->courseid);
|
||||
$context = null;
|
||||
if ($event->contextlevel == CONTEXT_COURSE) {
|
||||
$context = $event->get_context();
|
||||
}
|
||||
$rules = rule_manager::get_rules_by_courseid($event->courseid, 0, 0, false);
|
||||
foreach ($rules as $rule) {
|
||||
rule_manager::delete_rule($rule->id, $context);
|
||||
rule_manager::delete_rule($rule->id, $event->get_context());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -216,14 +216,23 @@ class rule_manager {
|
||||
* @param int $courseid course id of the rule.
|
||||
* @param int $limitfrom Limit from which to fetch rules.
|
||||
* @param int $limitto Limit to which rules need to be fetched.
|
||||
* @param bool $includesite Determines whether we return site wide rules or not.
|
||||
*
|
||||
* @return array List of rules for the given course id, also includes system wide rules.
|
||||
* @return array List of rules for the given course id, if specified will also include site rules.
|
||||
*/
|
||||
public static function get_rules_by_courseid($courseid, $limitfrom = 0, $limitto = 0) {
|
||||
public static function get_rules_by_courseid($courseid, $limitfrom = 0, $limitto = 0, $includesite = true) {
|
||||
global $DB;
|
||||
$select = "courseid = ? OR courseid = ?";
|
||||
$orderby = "courseid DESC, name ASC";
|
||||
return self::get_instances($DB->get_records_select('tool_monitor_rules', $select, array(0, $courseid), $orderby,
|
||||
|
||||
$select = 'courseid = ?';
|
||||
$params = array();
|
||||
$params[] = $courseid;
|
||||
if ($includesite) {
|
||||
$select .= ' OR courseid = ?';
|
||||
$params[] = 0;
|
||||
}
|
||||
$orderby = 'courseid DESC, name ASC';
|
||||
|
||||
return self::get_instances($DB->get_records_select('tool_monitor_rules', $select, $params, $orderby,
|
||||
'*', $limitfrom, $limitto));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user