From 99ce28a961ede452a008bb16487243ce42819bac Mon Sep 17 00:00:00 2001 From: Santosh Nagargoje Date: Thu, 7 Sep 2023 15:22:45 +0530 Subject: [PATCH] MDL-77572 Course: Added fix for section,activity visibility capabilities fixed bug --- 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 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..74b16107f4e 100644 --- a/course/format/classes/output/local/content/section.php +++ b/course/format/classes/output/local/content/section.php @@ -283,7 +283,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 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(),