diff --git a/blocks/moodleblock.class.php b/blocks/moodleblock.class.php index 3503cf7aa64..9ff1a0b8196 100644 --- a/blocks/moodleblock.class.php +++ b/blocks/moodleblock.class.php @@ -718,7 +718,10 @@ class block_nuke extends block_base { $oldvals['admin'] = $GLOBALS['admin']; } + // isteacher() will eventually be deprecated and blocks + // should define their own capabilities. $GLOBALS['admin'] = isteacher($this->course->id); + @include($dir.$file); foreach($oldvals as $key => $val) { @@ -739,4 +742,4 @@ class block_nuke extends block_base { } } -?> +?> \ No newline at end of file diff --git a/blocks/online_users/block_online_users.php b/blocks/online_users/block_online_users.php index 7eb84ffda0b..8807fe94634 100644 --- a/blocks/online_users/block_online_users.php +++ b/blocks/online_users/block_online_users.php @@ -1,5 +1,10 @@ title = get_string('blockname','block_online_users'); @@ -22,15 +27,20 @@ class block_online_users extends block_base { if (empty($this->instance)) { return $this->content; } - + $timetoshowusers = 300; //Seconds default if (isset($CFG->block_online_users_timetosee)) { $timetoshowusers = $CFG->block_online_users_timetosee * 60; } $timefrom = time()-$timetoshowusers; + // Get context so we can check capabilities. + $context = get_context_instance(CONTEXT_COURSE, $COURSE->id); + //Calculate if we are in separate groups - $isseparategroups = ($COURSE->groupmode == SEPARATEGROUPS && $COURSE->groupmodeforce && !isteacheredit($COURSE->id)); + $isseparategroups = ($COURSE->groupmode == SEPARATEGROUPS + && $COURSE->groupmodeforce + && !has_capability('moodle/site:accessallgroups', $context)); //Get the user current group $currentgroup = $isseparategroups ? get_current_group($COURSE->id) : NULL; @@ -85,7 +95,9 @@ class block_online_users extends block_base { {$CFG->prefix}user_teachers s $groupmembers WHERE u.id = s.userid $courseselect $groupselect $timeselect "; - + + // Now that we have the Roles System, how will we handle what + // used to be hidden teachers? if (!isteacher($COURSE->id)) { // Hide hidden teachers from students. $findteacherssql .= 'AND s.authority > 0 '; @@ -131,4 +143,4 @@ class block_online_users extends block_base { } } -?> +?> \ No newline at end of file diff --git a/blocks/participants/block_participants.php b/blocks/participants/block_participants.php index 06921eb075b..c54e9314357 100644 --- a/blocks/participants/block_participants.php +++ b/blocks/participants/block_participants.php @@ -14,15 +14,17 @@ class block_participants extends block_list { if (empty($this->instance->pageid)) { return ''; } - + + $sitecontext = get_context_instance(CONTEXT_SYSTEM, SITEID); + // only 2 possible contexts, site or course if ($this->instance->pageid == SITEID) { // site context - $context = get_context_instance(CONTEXT_SYSTEM, SITEID); + $currentcontext = $sitecontext; } else { // course context - $context = get_context_instance(CONTEXT_COURSE, $this->instance->pageid); + $currentcontext = get_context_instance(CONTEXT_COURSE, $this->instance->pageid); } - if (!has_capability('moodle/course:viewparticipants', $context)) { + if (!has_capability('moodle/course:viewparticipants', $currentcontext)) { $this->context = ''; return $this->content; } @@ -45,13 +47,14 @@ class block_participants extends block_list { $this->instance->pageid = SITEID; } + // $CFG->showsiteparticipantslist == 1 <-- this is deprecated. if ($this->instance->pageid != SITEID || $CFG->showsiteparticipantslist > 1 || ($CFG->showsiteparticipantslist == 1 && isteacherinanycourse()) || - isteacher(SITEID)) { + has_capability('moodle/course:viewparticipants', $sitecontext)) { $this->content->items[] = ''.get_string('participants').''; + $CFG->wwwroot.'/user/index.php?contextid='.$currentcontext->id.'">'.get_string('participants').''; $this->content->icons[] = ''; } @@ -66,4 +69,4 @@ class block_participants extends block_list { } -?> +?> \ No newline at end of file diff --git a/blocks/quiz_results/block_quiz_results.php b/blocks/quiz_results/block_quiz_results.php index ea92f77f43b..c6e54093e7a 100644 --- a/blocks/quiz_results/block_quiz_results.php +++ b/blocks/quiz_results/block_quiz_results.php @@ -51,6 +51,9 @@ class block_quiz_results extends block_base { $courseid = $this->config->courseid; } + $context = get_context_instance(CONTEXT_COURSE, $courseid); + + if(empty($quizid)) { $this->content->text = get_string('error_emptyquizid', 'block_quiz_results'); return $this->content; @@ -101,7 +104,7 @@ class block_quiz_results extends block_base { // The actual groupmode for the quiz is now known to be $groupmode } - if(isteacheredit($courseid) && $groupmode == SEPARATEGROUPS) { + if(has_capability('moodle/site:accessallgroups', $context) && $groupmode == SEPARATEGROUPS) { // We 'll make an exception in this case $groupmode = VISIBLEGROUPS; } diff --git a/blocks/social_activities/block_social_activities.php b/blocks/social_activities/block_social_activities.php index c671c357cf8..cd166a87efe 100644 --- a/blocks/social_activities/block_social_activities.php +++ b/blocks/social_activities/block_social_activities.php @@ -27,6 +27,7 @@ class block_social_activities extends block_list { } $course = get_record('course', 'id', $this->instance->pageid); + $context = get_context_instance(CONTEXT_COURSE, $course->id); // To make our day, we start with an ugly hack global $sections, $mods, $modnames; @@ -36,8 +37,8 @@ class block_social_activities extends block_list { $groupbuttons = $course->groupmode; $groupbuttonslink = (!$course->groupmodeforce); - $isteacher = isteacher($this->instance->pageid); - $isediting = isediting($this->instance->pageid); + $viewhiddenactivities = has_capability('moodle/course:viewhiddenactivities', $context); + $manageactivities = has_capability('moodle/course:manageactivities', $context); $ismoving = ismoving($this->instance->pageid); if ($ismoving) { $strmovehere = get_string('movehere'); @@ -61,7 +62,7 @@ class block_social_activities extends block_list { continue; } $mod = $mods[$modnumber]; - if ($isediting && !$ismoving) { + if ($manageactivities && !$ismoving) { if ($groupbuttons) { if (! $mod->groupmodelink = $groupbuttonslink) { $mod->groupmode = $course->groupmode; @@ -74,7 +75,7 @@ class block_social_activities extends block_list { } else { $editbuttons = ''; } - if ($mod->visible || $isteacher) { + if ($mod->visible || $viewhiddenactivities) { if ($ismoving) { if ($mod->id == $USER->activitycopy) { continue; @@ -115,7 +116,7 @@ class block_social_activities extends block_list { $this->content->icons[] = ''; } - if ($isediting && $modnames) { + if ($manageactivities && $modnames) { $this->content->footer = print_section_add_menus($course, 0, $modnames, true, true); } else { $this->content->footer = ''; @@ -125,4 +126,4 @@ class block_social_activities extends block_list { } } -?> +?> \ No newline at end of file