From d79de196c9f0d19b54454e5109bb6b8ab34f07eb Mon Sep 17 00:00:00 2001 From: Jason Fowler Date: Thu, 1 Dec 2011 13:47:59 +0800 Subject: [PATCH] MDL-30482 - Glossary - Adding capability to other areas using glossary --- blocks/glossary_random/block_glossary_random.php | 4 ++++ filter/glossary/filter.php | 2 +- mod/glossary/db/access.php | 2 +- mod/glossary/lib.php | 7 +++++-- mod/glossary/version.php | 2 +- 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/blocks/glossary_random/block_glossary_random.php b/blocks/glossary_random/block_glossary_random.php index 72fc75bcffe..7eab69bad47 100644 --- a/blocks/glossary_random/block_glossary_random.php +++ b/blocks/glossary_random/block_glossary_random.php @@ -118,6 +118,10 @@ class block_glossary_random extends block_base { 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 85926269440..6de83d6577d 100644 --- a/filter/glossary/filter.php +++ b/filter/glossary/filter.php @@ -57,7 +57,7 @@ class filter_glossary extends moodle_text_filter { $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 5d276c41151..0116daa4906 100644 --- a/mod/glossary/db/access.php +++ b/mod/glossary/db/access.php @@ -41,7 +41,7 @@ $capabilities = array( 'editingteacher' => CAP_ALLOW, 'manager' => CAP_ALLOW ) - ), + ), 'mod/glossary:write' => array( diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 2c4ac782749..eb226692a07 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 250d9373837..aa71ab06f1a 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; -- 2.43.0