diff --git a/course/format/classes/output/local/content/cm.php b/course/format/classes/output/local/content/cm.php index 2e1b89003de..b0d1ef362e2 100644 --- a/course/format/classes/output/local/content/cm.php +++ b/course/format/classes/output/local/content/cm.php @@ -25,6 +25,7 @@ namespace core_courseformat\output\local\content; use cm_info; +use context_course; use core\activity_dates; use core\output\named_templatable; use core_availability\info_module; @@ -278,7 +279,13 @@ class cm implements named_templatable, renderable { * @return bool if the cm has editor data */ protected function add_editor_data(stdClass &$data, renderer_base $output): bool { - if (!$this->format->show_editor()) { + $course = $this->format->get_course(); + $coursecontext = context_course::instance($course->id); + $editcaps = []; + if (has_capability('moodle/course:activityvisibility', $coursecontext)) { + $editcaps = ['moodle/course:activityvisibility']; + } + if (!$this->format->show_editor($editcaps)) { return false; } $returnsection = $this->format->get_section_number(); diff --git a/course/format/classes/output/local/content/section.php b/course/format/classes/output/local/content/section.php index 29402de5394..bf61d5a2d06 100644 --- a/course/format/classes/output/local/content/section.php +++ b/course/format/classes/output/local/content/section.php @@ -283,11 +283,16 @@ class section implements named_templatable, renderable { * @return bool if the cm has name data */ protected function add_editor_data(stdClass &$data, renderer_base $output): bool { - if (!$this->format->show_editor()) { + $course = $this->format->get_course(); + $coursecontext = context_course::instance($course->id); + $editcaps = []; + if (has_capability('moodle/course:sectionvisibility', $coursecontext)) { + $editcaps = ['moodle/course:sectionvisibility']; + } + if (!$this->format->show_editor($editcaps)) { return false; } - $course = $this->format->get_course(); if (empty($this->hidecontrols)) { $controlmenu = new $this->controlmenuclass($this->format, $this->section); $data->controlmenu = $controlmenu->export_for_template($output); diff --git a/course/lib.php b/course/lib.php index b5e0a6fffd1..02455d036a9 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1691,7 +1691,7 @@ function course_get_cm_edit_actions(cm_info $mod, $indent = -1, $sr = null) { } // Move (only for component compatible formats). - if ($usecomponents) { + if ($hasmanageactivities && $usecomponents) { $actions['move'] = new action_menu_link_secondary( new moodle_url($baseurl, [ 'sesskey' => sesskey(),