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

index 557d1a5..b6e3cfa 100644 (file)
 defined('MOODLE_INTERNAL') || die();
 
 $capabilities = array(
+    'mod/folder:view' => array(
+        'captype' => 'read',
+        'contextlevel' => CONTEXT_MODULE,
+        'archetypes' => array(
+            'guest' => CAP_ALLOW,
+            'user' => CAP_ALLOW,
+        )
+    ),
+
 /* TODO: review public portfolio API first!
     'mod/folder:portfolioexport' => array(
 
index 119233d..67020a0 100644 (file)
@@ -26,6 +26,7 @@
 
 $string['contentheader'] = 'Content';
 $string['folder:managefiles'] = 'Manage files in folder module';
+$string['folder:view'] = 'View folder content';
 $string['foldercontent'] = 'Files and subfolders';
 $string['modulename'] = 'Folder';
 $string['modulenameplural'] = 'Folders';
index 71b9442..f8cd876 100644 (file)
@@ -289,6 +289,9 @@ function folder_pluginfile($course, $cm, $context, $filearea, $args, $forcedownl
     }
 
     require_course_login($course, true, $cm);
+    if (!has_capability('mod/folder:view', $context)) {
+        return false;
+    }
 
     if ($filearea !== 'content') {
         // intro is handled automatically in pluginfile.php
index 517232c..d23f949 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 7984f60..afe90f1 100644 (file)
@@ -45,6 +45,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/folder:view', $context);
 
 add_to_log($course->id, 'folder', 'view', 'view.php?id='.$cm->id, $folder->id, $cm->id);