MDL-58087 core_calendar: Don't process events not created by modules
Our API infrastructure currently only deals with events created by course modules. Site, user, etc events can't be dealt with. Part of MDL-55611 epic.
This commit is contained in:
committed by
Dan Poltawski
parent
aa1cdff5f6
commit
f8a3e28b16
@@ -117,6 +117,10 @@ class core_container {
|
||||
$getcallback('action'),
|
||||
$getcallback('visibility'),
|
||||
function ($dbrow) {
|
||||
if (empty($dbrow->modulename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$instances = get_fast_modinfo($dbrow->courseid)->instances;
|
||||
|
||||
if (!isset($instances[$dbrow->modulename]) || !isset($instances[$dbrow->modulename][$dbrow->instance])) {
|
||||
|
||||
@@ -127,7 +127,7 @@ abstract class event_abstract_factory implements event_factory_interface {
|
||||
$module = null;
|
||||
$subscription = null;
|
||||
|
||||
if ($dbrow->courseid == 0) {
|
||||
if ($dbrow->courseid == 0 && !empty($dbrow->modulename)) {
|
||||
$cm = get_coursemodule_from_instance($dbrow->modulename, $dbrow->instance);
|
||||
$dbrow->courseid = get_course($cm->course)->id;
|
||||
}
|
||||
@@ -149,15 +149,14 @@ abstract class event_abstract_factory implements event_factory_interface {
|
||||
});
|
||||
}
|
||||
|
||||
if ($dbrow->instance && $dbrow->modulename) {
|
||||
$modulename = $dbrow->modulename;
|
||||
if ($dbrow->instance && !empty($dbrow->modulename)) {
|
||||
$module = new module_std_proxy(
|
||||
$dbrow->modulename,
|
||||
$dbrow->instance,
|
||||
function($modulename, $instance) {
|
||||
return \core_calendar\api::get_module_cached(
|
||||
$this->modulecachereference,
|
||||
$modulename,
|
||||
$dbrow->modulename,
|
||||
$instance
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user