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