From b92ac8c07989a7a7d8659169d465341e55a95d72 Mon Sep 17 00:00:00 2001 From: Charles Fulton Date: Fri, 25 Nov 2011 19:02:47 -0800 Subject: [PATCH] MDL-30482 create new capability for viewing glossary entries --- mod/glossary/db/access.php | 14 ++++++++++++++ mod/glossary/lang/en/glossary.php | 1 + mod/glossary/rsslib.php | 3 +-- mod/glossary/view.php | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mod/glossary/db/access.php b/mod/glossary/db/access.php index 13ca17081f4..5d276c41151 100644 --- a/mod/glossary/db/access.php +++ b/mod/glossary/db/access.php @@ -30,6 +30,20 @@ $capabilities = array( + 'mod/glossary:read' => array( + + 'captype' => 'read', + 'contextlevel' => CONTEXT_MODULE, + 'archetypes' => array( + 'guest' => CAP_ALLOW, + 'student' => CAP_ALLOW, + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'manager' => CAP_ALLOW + ) + ), + + 'mod/glossary:write' => array( 'riskbitmask' => RISK_SPAM, diff --git a/mod/glossary/lang/en/glossary.php b/mod/glossary/lang/en/glossary.php index 535f758dc77..4c4827c8b23 100644 --- a/mod/glossary/lang/en/glossary.php +++ b/mod/glossary/lang/en/glossary.php @@ -178,6 +178,7 @@ $string['glossary:managecategories'] = 'Manage categories'; $string['glossary:managecomments'] = 'Manage comments'; $string['glossary:manageentries'] = 'Manage entries'; $string['glossary:rate'] = 'Rate entries'; +$string['glossary:read'] = 'Read entries'; $string['glossarytype'] = 'Glossary type'; $string['glossarytype_help'] = 'A main glossary is a glossary in which entries from secondary glossaries can be imported. There can only be one main glossary in a course. if glossary entry import is not required, all glossaries in the course can be secondary glossaries.'; $string['glossary:view'] = 'View glossary'; diff --git a/mod/glossary/rsslib.php b/mod/glossary/rsslib.php index 5134126f8aa..bb84a6ddfcc 100644 --- a/mod/glossary/rsslib.php +++ b/mod/glossary/rsslib.php @@ -23,8 +23,7 @@ $course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST); } //context id from db should match the submitted one - //no specific capability required to view glossary entries so just check user is enrolled - if ($context->id != $modcontext->id || !can_access_course($course, $USER)) { + if ($context->id != $modcontext->id || !has_capability('mod/glossary:read', $modcontext)) { return null; } } diff --git a/mod/glossary/view.php b/mod/glossary/view.php index fe16b5ec6ca..420d6048ec7 100644 --- a/mod/glossary/view.php +++ b/mod/glossary/view.php @@ -49,6 +49,7 @@ if (!empty($id)) { require_course_login($course->id, true, $cm); $context = get_context_instance(CONTEXT_MODULE, $cm->id); +require_capability('mod/glossary:read', $context); // Prepare format_string/text options $fmtoptions = array( -- 2.43.0