From a224d550208b6fd3b067d663280d64e4edbeef1f Mon Sep 17 00:00:00 2001 From: Andrew Nicols Date: Thu, 18 Sep 2014 09:01:52 +0800 Subject: [PATCH] MDL-47183: viewhiddenactivities should use the module context Thanks to Paulo Matos for the forum part of this change. --- blocks/site_main_menu/block_site_main_menu.php | 2 +- blocks/social_activities/block_social_activities.php | 4 +--- course/format/singleactivity/lib.php | 7 ++++--- course/renderer.php | 6 ++---- mod/forum/post.php | 4 ++-- mod/glossary/index.php | 3 ++- mod/scorm/player.php | 2 +- 7 files changed, 13 insertions(+), 15 deletions(-) diff --git a/blocks/site_main_menu/block_site_main_menu.php b/blocks/site_main_menu/block_site_main_menu.php index 97f2ca8..8faf891 100644 --- a/blocks/site_main_menu/block_site_main_menu.php +++ b/blocks/site_main_menu/block_site_main_menu.php @@ -128,7 +128,7 @@ class block_site_main_menu extends block_list { } else { $editbuttons = ''; } - if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $context)) { + if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $mod->get_context())) { if ($ismoving) { if ($mod->id == $USER->activitycopy) { continue; diff --git a/blocks/social_activities/block_social_activities.php b/blocks/social_activities/block_social_activities.php index 5e127d8..024489d 100644 --- a/blocks/social_activities/block_social_activities.php +++ b/blocks/social_activities/block_social_activities.php @@ -130,7 +130,7 @@ class block_social_activities extends block_list { } else { $editbuttons = ''; } - if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $context)) { + if ($mod->visible || has_capability('moodle/course:viewhiddenactivities', $mod->get_context())) { if ($ismoving) { if ($mod->id == $USER->activitycopy) { continue; @@ -169,5 +169,3 @@ class block_social_activities extends block_list { return $this->content; } } - - diff --git a/course/format/singleactivity/lib.php b/course/format/singleactivity/lib.php index dfe2970..f2566a7 100644 --- a/course/format/singleactivity/lib.php +++ b/course/format/singleactivity/lib.php @@ -69,8 +69,7 @@ class format_singleactivity extends format_base { public function extend_course_navigation($navigation, navigation_node $node) { // Display orphaned activities for the users who can see them. $context = context_course::instance($this->courseid); - if (has_all_capabilities(array('moodle/course:viewhiddensections', - 'moodle/course:viewhiddenactivities'), $context)) { + if (has_capability('moodle/course:viewhiddensections', $context)) { $modinfo = get_fast_modinfo($this->courseid); if (!empty($modinfo->sections[1])) { $section1 = $modinfo->get_section_info(1); @@ -80,7 +79,9 @@ class format_singleactivity extends format_base { $orphanednode->nodetype = navigation_node::NODETYPE_BRANCH; $orphanednode->add_class('orphaned'); foreach ($modinfo->sections[1] as $cmid) { - $this->navigation_add_activity($orphanednode, $modinfo->cms[$cmid]); + if (has_capability('moodle/course:viewhiddenactivities', context_module($cmid))) { + $this->navigation_add_activity($orphanednode, $modinfo->cms[$cmid]); + } } } } diff --git a/course/renderer.php b/course/renderer.php index 55d242f..0a046aa 100644 --- a/course/renderer.php +++ b/course/renderer.php @@ -770,8 +770,7 @@ class core_course_renderer extends plugin_renderer_base { if ($mod->uservisible) { $conditionalhidden = $this->is_cm_conditionally_hidden($mod); $accessiblebutdim = (!$mod->visible || $conditionalhidden) && - has_capability('moodle/course:viewhiddenactivities', - context_course::instance($mod->course)); + has_capability('moodle/course:viewhiddenactivities', $mod->get_context()); if ($accessiblebutdim) { $linkclasses .= ' dimmed'; $textclasses .= ' dimmed_text'; @@ -833,8 +832,7 @@ class core_course_renderer extends plugin_renderer_base { if ($mod->uservisible) { $conditionalhidden = $this->is_cm_conditionally_hidden($mod); $accessiblebutdim = (!$mod->visible || $conditionalhidden) && - has_capability('moodle/course:viewhiddenactivities', - context_course::instance($mod->course)); + has_capability('moodle/course:viewhiddenactivities', $mod->get_context()); if ($accessiblebutdim) { $textclasses .= ' dimmed_text'; if ($conditionalhidden) { diff --git a/mod/forum/post.php b/mod/forum/post.php index b1bdd9f..a72a8b0 100644 --- a/mod/forum/post.php +++ b/mod/forum/post.php @@ -122,7 +122,7 @@ if (!empty($forum)) { // User is starting a new discussion in a forum print_error('nopostforum', 'forum'); } - if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $coursecontext)) { + if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $modcontext)) { print_error("activityiscurrentlyhidden"); } @@ -206,7 +206,7 @@ if (!empty($forum)) { // User is starting a new discussion in a forum } } - if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $coursecontext)) { + if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $modcontext)) { print_error("activityiscurrentlyhidden"); } diff --git a/mod/glossary/index.php b/mod/glossary/index.php index 3d5bb58..c432477 100644 --- a/mod/glossary/index.php +++ b/mod/glossary/index.php @@ -75,7 +75,8 @@ if ($show_rss = (isset($CFG->enablerssfeeds) && isset($CFG->glossary_enablerssfe $currentsection = ""; foreach ($glossarys as $glossary) { - if (!$glossary->visible && has_capability('moodle/course:viewhiddenactivities', $context)) { + if (!$glossary->visible && has_capability('moodle/course:viewhiddenactivities', + context_module::instance($glossary->coursemodule))) { // Show dimmed if the mod is hidden. $link = "coursemodule\">".format_string($glossary->name,true).""; } else if ($glossary->visible) { diff --git a/mod/scorm/player.php b/mod/scorm/player.php index 651b80d..df9b2ee 100644 --- a/mod/scorm/player.php +++ b/mod/scorm/player.php @@ -97,7 +97,7 @@ if ($displaymode == 'popup') { $PAGE->set_title($pagetitle); $PAGE->set_heading($course->fullname); } -if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', $coursecontext)) { +if (!$cm->visible and !has_capability('moodle/course:viewhiddenactivities', context_module::instance($cm->id))) { echo $OUTPUT->header(); notice(get_string("activityiscurrentlyhidden")); echo $OUTPUT->footer(); -- 1.9.0