MDL-14627 new mod/imscp:view capability
authorPetr Skoda <skodak@moodle.org>
Thu, 14 Oct 2010 19:02:42 +0000 (19:02 +0000)
committerPetr Skoda <skodak@moodle.org>
Thu, 14 Oct 2010 19:02:42 +0000 (19:02 +0000)
mod/imscp/db/access.php
mod/imscp/lang/en/imscp.php
mod/imscp/lib.php
mod/imscp/version.php
mod/imscp/view.php

index 04d0f14..9903696 100644 (file)
 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(
index 98c50f7..9041286 100644 (file)
@@ -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';
index f777ae1..94dc67a 100644 (file)
@@ -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);
index 4a23d15..84624f2 100644 (file)
@@ -26,7 +26,7 @@
 
 defined('MOODLE_INTERNAL') || die();
 
-$module->version  = 2010080300;
+$module->version  = 2010101400;
 $module->requires = 2010080300;  // Requires this Moodle version
 $module->cron     = 0;
 
index e10d517..8d5b773 100644 (file)
@@ -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);