diff --git a/admin/tool/task/schedule_task.php b/admin/tool/task/schedule_task.php index 68b5ebd231a..1c72eb4fd8c 100644 --- a/admin/tool/task/schedule_task.php +++ b/admin/tool/task/schedule_task.php @@ -54,8 +54,12 @@ if (!$task) { throw new moodle_exception('cannotfindinfo', 'error', new moodle_url('/admin/tool/task/scheduledtasks.php'), $taskname); } +$plugininfo = core_plugin_manager::instance()->get_plugin_info($task->get_component()); +$plugindisabled = $plugininfo && $plugininfo->is_enabled() === false && + !$task->get_run_if_component_disabled(); + $canruntasks = \core\task\manager::is_runnable() && get_config('tool_task', 'enablerunnow'); -if (!$canruntasks || !$task->can_run()) { +if (!$canruntasks || $plugindisabled) { throw new moodle_exception('nopermissions', 'error', new moodle_url('/admin/tool/task/scheduledtasks.php'), get_string('runnow', 'tool_task'), $task->get_name()); }