From 1c5445c6e63981f6d74782adab03b49cb9013923 Mon Sep 17 00:00:00 2001 From: Santosh Nagargoje Date: Thu, 7 Sep 2023 02:21:34 +0530 Subject: [PATCH] MDL-77572 Course: Added fix for section,activity visibility capabilities --- course/format/classes/output/local/content/cm.php | 9 ++++++++- course/format/classes/output/local/content/section.php | 8 +++++++- course/lib.php | 2 +- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/course/format/classes/output/local/content/cm.php b/course/format/classes/output/local/content/cm.php index ed237ef40ba..ab1e9390e6e 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\output\named_templatable; use core_availability\info_module; use core_courseformat\base as course_format; @@ -300,7 +301,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 63b39372df5..6cbfb5e3f75 100644 --- a/course/format/classes/output/local/content/section.php +++ b/course/format/classes/output/local/content/section.php @@ -284,7 +284,13 @@ 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; } diff --git a/course/lib.php b/course/lib.php index 03cb1e1dda8..818d8407017 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1697,7 +1697,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(),