From 86a3996d3df7e2220e1de08a8fe2648ac5c07ef4 Mon Sep 17 00:00:00 2001 From: mjollnir_ Date: Tue, 19 Aug 2008 09:20:54 +0000 Subject: [PATCH] MDL-15768 - roles in glossary --- lang/en_utf8/glossary.php | 2 ++ mod/glossary/db/access.php | 25 +++++++++++++++++++++++++ mod/glossary/export.php | 3 ++- mod/glossary/lib.php | 20 +++++++------------- mod/glossary/version.php | 2 +- 5 files changed, 37 insertions(+), 15 deletions(-) diff --git a/lang/en_utf8/glossary.php b/lang/en_utf8/glossary.php index cba53670db..01d7526c36 100644 --- a/lang/en_utf8/glossary.php +++ b/lang/en_utf8/glossary.php @@ -127,6 +127,8 @@ $string['globalglossary'] = 'Global glossary'; $string['glossary:approve'] = 'Approve unapproved entries'; $string['glossary:comment'] = 'Create comments'; $string['glossary:export'] = 'Export entries'; +$string['glossary:exportentry'] = 'Export single entry'; +$string['glossary:exportownentry'] = 'Export single entry of yours'; $string['glossary:import'] = 'Import entries'; $string['glossary:managecategories'] = 'Manage categories'; $string['glossary:managecomments'] = 'Manage comments'; diff --git a/mod/glossary/db/access.php b/mod/glossary/db/access.php index b00f92691a..f800926d80 100644 --- a/mod/glossary/db/access.php +++ b/mod/glossary/db/access.php @@ -159,6 +159,31 @@ $mod_glossary_capabilities = array( ) ), + 'mod/glossary:exportentry' => array( + + 'riskbitmask' => RISK_PERSONAL, + + 'captype' => 'read', + 'contextlevel' => CONTEXT_MODULE, + 'legacy' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'admin' => CAP_ALLOW + ) + ), + + 'mod/glossary:exportownentry' => array( + + 'captype' => 'read', + 'contextlevel' => CONTEXT_MODULE, + 'legacy' => array( + 'teacher' => CAP_ALLOW, + 'editingteacher' => CAP_ALLOW, + 'admin' => CAP_ALLOW, + 'student' => CAP_ALLOW, + ) + ), + ); ?> diff --git a/mod/glossary/export.php b/mod/glossary/export.php index d5f0d88707..9a26d068de 100644 --- a/mod/glossary/export.php +++ b/mod/glossary/export.php @@ -57,7 +57,8 @@ count_records('glossary_entries', array('glossaryid' => $glossary->id)) && true) { // @todo penny capability check + // don't need cap check here, we share with the general export. + if ($DB->count_records('glossary_entries', array('glossaryid' => $glossary->id))) { require_once($CFG->libdir . '/portfoliolib.php'); $p = array( 'id' => $cm->id, diff --git a/mod/glossary/lib.php b/mod/glossary/lib.php index 017bcbe183..d8b43e66e4 100644 --- a/mod/glossary/lib.php +++ b/mod/glossary/lib.php @@ -900,7 +900,9 @@ function glossary_print_entry_icons($course, $cm, $glossary, $entry, $mode='',$h $return .= " " . get_string("exportedentry","glossary") . ""; } } - if (true) { // @todo penny add capability check + if (has_capability('mod/glossary:exportentry', $context) + || ($entry->userid == $USER->id + && has_capability('mod/glossary:exportownentry', $context))) { require_once($CFG->libdir . '/portfoliolib.php'); $p = array( 'id' => $cm->id, @@ -2428,8 +2430,7 @@ class glossary_csv_portfolio_caller extends portfolio_module_caller_base { } public function check_permissions() { - // @todo - return true; + return has_capability('mod/glossary:export', get_context_instance(CONTEXT_MODULE, $this->cm->id)); } public static function display_name() { @@ -2454,14 +2455,6 @@ class glossary_entry_portfolio_caller extends portfolio_module_caller_base { || !$this->entry = $DB->get_record('glossary_entries', array('id' => $callbackargs['entryid']))) { portfolio_exporter::raise_error('noentry', 'glossary'); } - /* - $aliases = $DB->get_records('glossary_alias', array('entryid' => $this->entry->id)); - $categories = $DB->get_records_sql('SELECT ec.entryid, c.name - FROM {glossary_entries_categories} ec - JOIN {glossary_categories} c - ON c.id = ec.categoryid - WHERE ec.entryid = ?', array($this->entry->id)); - */ } public function expected_time() { @@ -2469,8 +2462,9 @@ class glossary_entry_portfolio_caller extends portfolio_module_caller_base { } public function check_permissions() { - //@ penny todo - return true; + $context = get_context_instance(CONTEXT_MODULE, $this->cm->id); + return has_capability('mod/glossary:exportentry', $context) + || ($this->entry->userid == $this->user->id && has_capability('mod/glossary:exportownentry', $context)); } public static function display_name() { diff --git a/mod/glossary/version.php b/mod/glossary/version.php index 4fa3d061d6..64450c2781 100644 --- a/mod/glossary/version.php +++ b/mod/glossary/version.php @@ -5,7 +5,7 @@ /// This fragment is called by moodle_needs_upgrading() and /admin/index.php ///////////////////////////////////////////////////////////////////////////////// -$module->version = 2008081900; +$module->version = 2008081901; $module->requires = 2008081600; // Requires this Moodle version $module->cron = 0; // Period for cron to check this module (secs) -- 2.39.5