diff --git a/blocks/site_main_menu/block_site_main_menu.php b/blocks/site_main_menu/block_site_main_menu.php index 97f2ca88762..8faf891ad9b 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 5e127d8644c..024489d8b57 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 dfe2970c577..f2566a7332a 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 55d242f086b..0a046aa3259 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 b1bdd9ff929..7e35b1747ac 100644 --- a/mod/forum/post.php +++ b/mod/forum/post.php @@ -107,6 +107,8 @@ if (!empty($forum)) { // User is starting a new discussion in a forum print_error("invalidcoursemodule"); } + // Retrieve the contexts. + $modcontext = context_module::instance($cm->id); $coursecontext = context_course::instance($course->id); if (! forum_user_can_post_discussion($forum, $groupid, -1, $cm)) { @@ -122,7 +124,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"); } @@ -176,8 +178,9 @@ if (!empty($forum)) { // User is starting a new discussion in a forum // Ensure lang, theme, etc. is set up properly. MDL-6926 $PAGE->set_cm($cm, $course, $forum); - $coursecontext = context_course::instance($course->id); + // Retrieve the contexts. $modcontext = context_module::instance($cm->id); + $coursecontext = context_course::instance($course->id); if (! forum_user_can_post($forum, $discussion, $USER, $cm, $course, $modcontext)) { if (!isguestuser()) { @@ -206,7 +209,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 3d5bb586c43..c432477adef 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 651b80d6dae..df9b2eeb3bf 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();