diff --git a/blocks/glossary_random/block_glossary_random.php b/blocks/glossary_random/block_glossary_random.php index 72fc75bcffea1..7eab69bad47ca 100644 --- a/blocks/glossary_random/block_glossary_random.php +++ b/blocks/glossary_random/block_glossary_random.php @@ -118,6 +118,10 @@ function instance_allow_multiple() { function get_content() { global $USER, $CFG, $DB; + if (!has_capability('mod/glossary:read', $this->context)) { + return ""; + } + if (empty($this->config->glossary)) { $this->content->text = get_string('notyetconfigured','block_glossary_random'); $this->content->footer = ''; diff --git a/filter/glossary/filter.php b/filter/glossary/filter.php index 8592626944094..6de83d6577d48 100644 --- a/filter/glossary/filter.php +++ b/filter/glossary/filter.php @@ -57,7 +57,7 @@ public function filter($text, array $options = array()) { $nothingtodo = false; } - if ($nothingtodo === true) { + if (($nothingtodo === true) || (!has_capability('mod/glossary:read', $this->context))) { return $text; } diff --git a/mod/glossary/db/access.php b/mod/glossary/db/access.php index 5d276c4115192..0116daa4906e1 100644 --- a/mod/glossary/db/access.php +++ b/mod/glossary/db/access.php @@ -41,7 +41,7 @@ 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) - ), + ), 'mod/glossary:write' => array( diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 2c4ac78274981..eb226692a0742 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -323,7 +323,7 @@ function glossary_user_complete($course, $user, $mod, $glossary) { * @return bool */ function glossary_print_recent_activity($course, $viewfullnames, $timestart) { - global $CFG, $USER, $DB, $OUTPUT; + global $CFG, $USER, $DB, $OUTPUT, $PAGE; //TODO: use timestamp in approved field instead of changing timemodified when approving in 2.0 if (!defined('GLOSSARY_RECENT_ACTIVITY_LIMIT')) { @@ -351,6 +351,9 @@ function glossary_print_recent_activity($course, $viewfullnames, $timestart) { $approvals = array(); foreach ($ids as $glinstanceid => $glcmid) { $context = get_context_instance(CONTEXT_MODULE, $glcmid); + if (!has_capability('mod/glossary:read', $context)) { + continue; + } // get records glossary entries that are approved if user has no capability to approve entries. if (has_capability('mod/glossary:approve', $context)) { $approvals[] = ' ge.glossaryid = :glsid'.$glinstanceid.' '; @@ -2771,7 +2774,7 @@ function glossary_extend_settings_navigation(settings_navigation $settings, navi $glossary = $DB->get_record('glossary', array("id" => $PAGE->cm->instance)); - if (!empty($CFG->enablerssfeeds) && !empty($CFG->glossary_enablerssfeeds) && $glossary->rsstype && $glossary->rssarticles && can_access_course($PAGE->course, $USER)) { + if (!empty($CFG->enablerssfeeds) && !empty($CFG->glossary_enablerssfeeds) && $glossary->rsstype && $glossary->rssarticles && has_capability('mod/glossary:read', $PAGE->cm->context)) { require_once("$CFG->libdir/rsslib.php"); $string = get_string('rsstype','forum'); diff --git a/mod/glossary/version.php b/mod/glossary/version.php index 250d93738372c..aa71ab06f1a13 100644 --- a/mod/glossary/version.php +++ b/mod/glossary/version.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); -$module->version = 2011112900; // The current module version (Date: YYYYMMDDXX) +$module->version = 2011120200; // The current module version (Date: YYYYMMDDXX) $module->requires = 2011112900; // Requires this Moodle version $module->component = 'mod_glossary'; // Full name of the plugin (used for diagnostics) $module->cron = 0;