MDL-48371 editors: Option for removing managefiles
authorAdrian Greeve <adrian@moodle.com>
Tue, 25 Aug 2015 04:57:43 +0000 (12:57 +0800)
committerDan Poltawski <dan@moodle.com>
Mon, 7 Sep 2015 08:59:35 +0000 (09:59 +0100)
We want to remove the managefiles button from the
editors in the wiki so that students don't delete
each others files.

lib/editor/atto/lib.php
lib/editor/tinymce/lib.php
lib/form/editor.php
lib/upgrade.txt
mod/wiki/pagelib.php

index a450917..f09653d 100644 (file)
@@ -103,6 +103,11 @@ class atto_texteditor extends texteditor {
                     continue;
                 }
 
+                // Remove manage files if requested.
+                if ($plugin == 'managefiles' && isset($options['enable_filemanagement']) && !$options['enable_filemanagement']) {
+                    continue;
+                }
+
                 $jsplugin = array();
                 $jsplugin['name'] = $plugin;
                 $jsplugin['params'] = array();
index 6aaab94..e827092 100644 (file)
@@ -108,6 +108,13 @@ class tinymce_texteditor extends texteditor {
             $config->disabledsubplugins = '';
         }
 
+        // Remove the manage files button if requested.
+        if (isset($options['enable_filemanagement']) && !$options['enable_filemanagement']) {
+            if (!strpos($config->disabledsubplugins, 'managefiles')) {
+                $config->disabledsubplugins .= ',managefiles';
+            }
+        }
+
         $fontselectlist = empty($config->fontselectlist) ? '' : $config->fontselectlist;
 
         $langrev = -1;
index 76e534b..0c18b21 100644 (file)
@@ -53,7 +53,7 @@ class MoodleQuickForm_editor extends HTML_QuickForm_element {
     /** @var array options provided to initalize filepicker */
     protected $_options = array('subdirs' => 0, 'maxbytes' => 0, 'maxfiles' => 0, 'changeformat' => 0,
             'areamaxbytes' => FILE_AREA_MAX_BYTES_UNLIMITED, 'context' => null, 'noclean' => 0, 'trusttext' => 0,
-            'return_types' => 7);
+            'return_types' => 7, 'enable_filemanagement' => true);
     // $_options['return_types'] = FILE_INTERNAL | FILE_EXTERNAL | FILE_REFERENCE
 
     /** @var array values for editor */
index d11e49a..0030bab 100644 (file)
@@ -132,6 +132,7 @@ information provided here is intended especially for developers.
 * The never unused webdav_locks table was dropped.
 * The actionmenu hideMenu() function now expects an EventFacade object to be passed to it,
   i.e. a call to M.core.actionmenu.instance.hideMenu() should be change to M.core.actionmenu.instance.hideMenu(e)
+* In the html_editors (tinyMCE, Atto), the manage files button can be hidden by changing the 'enable_filemanagement' option to false.
 
 === 2.9.1 ===
 
index 5acd88f..e6a840c 100644 (file)
@@ -381,7 +381,12 @@ class page_wiki_edit extends page_wiki {
     function __construct($wiki, $subwiki, $cm) {
         global $CFG, $PAGE;
         parent::__construct($wiki, $subwiki, $cm);
-        self::$attachmentoptions = array('subdirs' => false, 'maxfiles' => - 1, 'maxbytes' => $CFG->maxbytes, 'accepted_types' => '*');
+        $showfilemanager = false;
+        if (has_capability('mod/wiki:managefiles', context_module::instance($cm->id))) {
+            $showfilemanager = true;
+        }
+        self::$attachmentoptions = array('subdirs' => false, 'maxfiles' => - 1, 'maxbytes' => $CFG->maxbytes,
+                'accepted_types' => '*', 'enable_filemanagement' => $showfilemanager);
         $PAGE->requires->js_init_call('M.mod_wiki.renew_lock', null, true);
     }