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

index 8ad8043..5abde19 100644 (file)
 defined('MOODLE_INTERNAL') || die;
 
 $capabilities = array(
+    'mod/resource:view' => array(
+        'captype' => 'read',
+        'contextlevel' => CONTEXT_MODULE,
+        'archetypes' => array(
+            'guest' => CAP_ALLOW,
+            'user' => CAP_ALLOW,
+        )
+    ),
+
 /* TODO: review public portfolio API first!
     'mod/resource:portfolioexport' => array(
 
index a9641de..7bbd821 100644 (file)
@@ -82,5 +82,6 @@ $string['printintro'] = 'Display resource description';
 $string['printintroexplain'] = 'Display resource description bellow content? Some display types may not display description even if enabled.';
 $string['resourcecontent'] = 'Files and subfolders';
 $string['resource:exportresource'] = 'Export resource';
+$string['resource:view'] = 'View resource files';
 $string['resource:view'] = 'View resource';
 $string['selectmainfile'] = 'Please select the main file by clicking the icon next to file name.';
index 024ddfb..997ffdf 100644 (file)
@@ -373,6 +373,9 @@ function resource_pluginfile($course, $cm, $context, $filearea, $args, $forcedow
     }
 
     require_course_login($course, true, $cm);
+    if (!has_capability('mod/resource:view', $context)) {
+        return false;
+    }
 
     if ($filearea !== 'content') {
         // intro is handled automatically in pluginfile.php
index 58b5f68..18c3acc 100644 (file)
@@ -26,7 +26,7 @@
 
 defined('MOODLE_INTERNAL') || die;
 
-$module->version  = 2010083000;
+$module->version  = 2010101400;
 $module->requires = 2010080300;  // Requires this Moodle version
 $module->cron     = 0;
 
index 67d0551..457da90 100644 (file)
@@ -50,6 +50,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/resource:view', $context);
 
 add_to_log($course->id, 'resource', 'view', 'view.php?id='.$cm->id, $resource->id, $cm->id);