From e0334eca6f7df17326b6d6e7b1d23b50e9a64e2b Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Thu, 14 Oct 2010 19:02:42 +0000 Subject: [PATCH] MDL-14627 new mod/imscp:view capability --- mod/imscp/db/access.php | 8 ++++++++ mod/imscp/lang/en/imscp.php | 1 + mod/imscp/lib.php | 3 +++ mod/imscp/version.php | 2 +- mod/imscp/view.php | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/mod/imscp/db/access.php b/mod/imscp/db/access.php index 04d0f14b2b6..99036960b1f 100644 --- a/mod/imscp/db/access.php +++ b/mod/imscp/db/access.php @@ -27,6 +27,14 @@ defined('MOODLE_INTERNAL') || die(); $capabilities = array( + 'mod/imscp:view' => array( + 'captype' => 'read', + 'contextlevel' => CONTEXT_MODULE, + 'archetypes' => array( + 'guest' => CAP_ALLOW, + 'user' => CAP_ALLOW, + ) + ), /* TODO: review public portfolio API first! 'mod/imscp:portfolioexport' => array( diff --git a/mod/imscp/lang/en/imscp.php b/mod/imscp/lang/en/imscp.php index 98c50f7679a..9041286e786 100644 --- a/mod/imscp/lang/en/imscp.php +++ b/mod/imscp/lang/en/imscp.php @@ -30,6 +30,7 @@ $string['contentheader'] = 'Content'; $string['deploymenterror'] = 'Content package error!'; $string['keepold'] = 'Archive packages'; $string['keepoldexplain'] = 'How many packages should be archived?'; +$string['imscp:view'] = 'View IMS Content'; $string['modulename'] = 'IMS content package'; $string['modulename_help'] = 'An IMS content package allows for packages created according to the IMS Content Packaging specification to be displayed in the course.'; $string['modulenameplural'] = 'IMS content packages'; diff --git a/mod/imscp/lib.php b/mod/imscp/lib.php index f777ae1cfe4..94dc67a726b 100644 --- a/mod/imscp/lib.php +++ b/mod/imscp/lib.php @@ -338,6 +338,9 @@ function imscp_pluginfile($course, $cm, $context, $filearea, $args, $forcedownlo require_login($course, true, $cm); if ($filearea === 'content') { + if (!has_capability('mod/imscp:view', $context)) { + return false; + } $revision = array_shift($args); $fs = get_file_storage(); $relativepath = implode('/', $args); diff --git a/mod/imscp/version.php b/mod/imscp/version.php index 4a23d15174a..84624f27354 100644 --- a/mod/imscp/version.php +++ b/mod/imscp/version.php @@ -26,7 +26,7 @@ defined('MOODLE_INTERNAL') || die(); -$module->version = 2010080300; +$module->version = 2010101400; $module->requires = 2010080300; // Requires this Moodle version $module->cron = 0; diff --git a/mod/imscp/view.php b/mod/imscp/view.php index e10d517b451..8d5b7735f98 100644 --- a/mod/imscp/view.php +++ b/mod/imscp/view.php @@ -44,6 +44,7 @@ $course = $DB->get_record('course', array('id'=>$cm->course), '*', MUST_EXIST); require_course_login($course, true, $cm); $context = get_context_instance(CONTEXT_MODULE, $cm->id); +require_capability('mod/imscp:view', $context); add_to_log($course->id, 'imscp', 'view', 'view.php?id='.$cm->id, $imscp->id, $cm->id);