[TASK] Ext:rtehtmlarea entry scripts cleanup 08/28208/3
authorNicole Cordes <typo3@cordes.co>
Sun, 9 Mar 2014 23:06:09 +0000 (00:06 +0100)
committerMarkus Klein <klein.t3@mfc-linz.at>
Mon, 17 Mar 2014 20:37:25 +0000 (21:37 +0100)
This patch turns all remaining RTE module scripts (mod4, mod5, mod6)
into CSRF protected wizards.

Resolves: #55674
Releases: 6.2
Change-Id: I8421ff05240f6eedcaf40c805d9dd92ea7d4c30b
Reviewed-on: https://review.typo3.org/28208
Reviewed-by: Anja Leichsenring
Tested-by: Anja Leichsenring
Reviewed-by: Markus Klein
Tested-by: Markus Klein
15 files changed:
typo3/sysext/rtehtmlarea/Classes/Controller/SelectImageController.php
typo3/sysext/rtehtmlarea/Classes/Extension/Typo3HtmlParser.php
typo3/sysext/rtehtmlarea/Classes/Extension/Typo3Image.php
typo3/sysext/rtehtmlarea/Classes/Extension/UserElements.php
typo3/sysext/rtehtmlarea/Classes/User.php
typo3/sysext/rtehtmlarea/ext_tables.php
typo3/sysext/rtehtmlarea/mod4/conf.php
typo3/sysext/rtehtmlarea/mod4/index.php [new file with mode: 0644]
typo3/sysext/rtehtmlarea/mod4/select_image.php [deleted file]
typo3/sysext/rtehtmlarea/mod5/conf.php
typo3/sysext/rtehtmlarea/mod5/index.php [new file with mode: 0644]
typo3/sysext/rtehtmlarea/mod5/user.php [deleted file]
typo3/sysext/rtehtmlarea/mod6/conf.php
typo3/sysext/rtehtmlarea/mod6/index.php [new file with mode: 0644]
typo3/sysext/rtehtmlarea/mod6/parse_html.php [deleted file]

index 180b69a..cfd8b6b 100644 (file)
@@ -42,6 +42,15 @@ class SelectImageController {
        protected $content = '';
 
        /**
+        * Initialize language files
+        */
+       public function __construct() {
+               $GLOBALS['LANG']->includeLLFile('EXT:lang/locallang_TYPO3\\CMS\\Recordlist\\Browser\\ElementBrowser.xlf');
+               $GLOBALS['LANG']->includeLLFile('EXT:rtehtmlarea/mod4/locallang.xlf');
+               $GLOBALS['LANG']->includeLLFile('EXT:rtehtmlarea/htmlarea/locallang_dialogs.xlf');
+       }
+
+       /**
         * Main function, rendering the element browser in RTE mode.
         *
         * @return      void
index 183fc78..bd18d9d 100644 (file)
@@ -79,7 +79,8 @@ class Typo3HtmlParser extends \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaApi {
                        RTEarea[' . $RTEcounter . '].buttons.' . $button . ' = new Object();';
                        }
                        $registerRTEinJavascriptString .= '
-                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathParseHtmlModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod6/parse_html.php";
+                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathParseHtmlModule = "' .
+                               \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('rtehtmlarea_wizard_parse_html') . '";
                        RTEarea[' . $RTEcounter . '].buttons.' . $button . '.hotKey = "' . ($this->thisConfig['enableWordClean.']['hotKey'] ?: '0') . '";';
                }
                return $registerRTEinJavascriptString;
index 3f92df7..453a8c4 100644 (file)
@@ -83,7 +83,8 @@ class Typo3Image extends \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaApi {
                        RTEarea[' . $RTEcounter . ']["buttons"]["' . $button . '"] = new Object();';
                        }
                        $registerRTEinJavascriptString .= '
-                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathImageModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod4/select_image.php";';
+                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathImageModule = "' .
+                               \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('rtehtmlarea_wizard_select_image') . '";';
                }
                return $registerRTEinJavascriptString;
        }
index 67cf628..0b991a0 100644 (file)
@@ -75,7 +75,8 @@ class UserElements extends \TYPO3\CMS\Rtehtmlarea\RteHtmlAreaApi {
                        RTEarea[' . $RTEcounter . '].buttons.' . $button . ' = new Object();';
                        }
                        $registerRTEinJavascriptString .= '
-                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathUserModule = "' . $this->htmlAreaRTE->extHttpPath . 'mod5/user.php";';
+                       RTEarea[' . $RTEcounter . '].buttons.' . $button . '.pathUserModule = "' .
+                               \TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('rtehtmlarea_wizard_user') . '";';
                }
                return $registerRTEinJavascriptString;
        }
index 97eb553..f33919c 100644 (file)
@@ -66,6 +66,14 @@ class User {
        public $editorNo;
 
        /**
+        * Initialize language files
+        */
+       public function __construct() {
+               $GLOBALS['LANG']->includeLLFile('EXT:rtehtmlarea/mod5/locallang.xlf');
+               $GLOBALS['LANG']->includeLLFile('EXT:rtehtmlarea/htmlarea/locallang_dialogs.xlf');
+       }
+
+       /**
         * @return      [type]          ...
         * @todo Define visibility
         */
index 1786964..b604b62 100644 (file)
@@ -66,4 +66,22 @@ if (TYPO3_MODE === 'BE') {
                'rtehtmlarea_wizard_element_browser',
                \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'mod3/'
        );
+
+       // Register RTE wizard_select_image
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModulePath(
+               'rtehtmlarea_wizard_select_image',
+               \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'mod4/'
+       );
+
+       // Register RTE wizard_user
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModulePath(
+               'rtehtmlarea_wizard_user',
+               \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'mod5/'
+       );
+
+       // Register RTE wizard_user
+       \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addModulePath(
+               'rtehtmlarea_wizard_parse_html',
+               \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'mod6/'
+       );
 }
\ No newline at end of file
index a1edcd4..35bdbe6 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-// DO NOT REMOVE OR CHANGE THESE 3 LINES:
-define('TYPO3_MOD_PATH', 'sysext/rtehtmlarea/mod4/');
-$BACK_PATH = '../../../';
-$MCONF['name'] = 'txrtehtmlareaselectimage';
+$MCONF['name'] = 'rtehtmlarea_wizard_select_image';
+$MCONF['script'] = '_DISPATCH';
+$MCONF['access'] = '';
diff --git a/typo3/sysext/rtehtmlarea/mod4/index.php b/typo3/sysext/rtehtmlarea/mod4/index.php
new file mode 100644 (file)
index 0000000..7b6fb5c
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 1999-2013 Kasper Skårhøj (kasper@typo3.com)
+ *  (c) 2004-2013 Stanislas Rolland <typo3(arobas)jbr.ca>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the text file GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * Displays image selector for the RTE
+ *
+ * @author     Kasper Skårhøj <kasper@typo3.com>
+ * @author     Stanislas Rolland <typo3(arobas)jbr.ca>
+ */
+
+// Make instance:
+$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\Controller\\SelectImageController');
+$SOBE->main();
+$SOBE->printContent();
diff --git a/typo3/sysext/rtehtmlarea/mod4/select_image.php b/typo3/sysext/rtehtmlarea/mod4/select_image.php
deleted file mode 100644 (file)
index 627ce85..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2013 Kasper Skårhøj (kasper@typo3.com)
- *  (c) 2004-2013 Stanislas Rolland <typo3(arobas)jbr.ca>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the text file GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
-/**
- * Displays image selector for the RTE
- *
- * @author     Kasper Skårhøj <kasper@typo3.com>
- * @author     Stanislas Rolland <typo3(arobas)jbr.ca>
- */
-error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
-unset($MCONF);
-require __DIR__ . '/conf.php';
-require $BACK_PATH . 'init.php';
-$LANG->includeLLFile('EXT:lang/locallang_TYPO3\\CMS\\Recordlist\\Browser\\ElementBrowser.xlf');
-$LANG->includeLLFile('EXT:rtehtmlarea/mod4/locallang.xlf');
-$LANG->includeLLFile('EXT:rtehtmlarea/htmlarea/locallang_dialogs.xlf');
-/*
- * @deprecated since 6.0, the classname tx_rtehtmlarea_SC_select_image and this file is obsolete
- * and will be removed with 6.2. The class was renamed and is now located at:
- * typo3/sysext/rtehtmlarea/Classes/Controller/SelectImageController.php
- */
-require_once \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('rtehtmlarea') . 'Classes/Controller/SelectImageController.php';
-// Make instance:
-$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\Controller\\SelectImageController');
-$SOBE->main();
-$SOBE->printContent();
index c6401de..7e988a7 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-// DO NOT REMOVE OR CHANGE THESE 3 LINES:
-define('TYPO3_MOD_PATH', 'sysext/rtehtmlarea/mod5/');
-$BACK_PATH = '../../../';
-$MCONF['name'] = 'txrtehtmlareauser';
+$MCONF['name'] = 'rtehtmlarea_wizard_user';
+$MCONF['script'] = '_DISPATCH';
+$MCONF['access'] = '';
\ No newline at end of file
diff --git a/typo3/sysext/rtehtmlarea/mod5/index.php b/typo3/sysext/rtehtmlarea/mod5/index.php
new file mode 100644 (file)
index 0000000..44b5e5e
--- /dev/null
@@ -0,0 +1,39 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 1999-2013 Kasper Skårhøj (kasper@typo3.com)
+ *  (c) 2005-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the text file GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * User defined content for htmlArea RTE
+ *
+ * @author     Kasper Skårhøj <kasper@typo3.com>
+ * @author     Stanislas Rolland <typo3(arobas)sjbr.ca>
+ */
+
+// Make instance:
+$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\User');
+$SOBE->init();
+$SOBE->main();
+$SOBE->printContent();
diff --git a/typo3/sysext/rtehtmlarea/mod5/user.php b/typo3/sysext/rtehtmlarea/mod5/user.php
deleted file mode 100644 (file)
index ac861c4..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 1999-2013 Kasper Skårhøj (kasper@typo3.com)
- *  (c) 2005-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the text file GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
-/**
- * User defined content for htmlArea RTE
- *
- * @author     Kasper Skårhøj <kasper@typo3.com>
- * @author     Stanislas Rolland <typo3(arobas)sjbr.ca>
- */
-error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
-unset($MCONF);
-require __DIR__ . '/conf.php';
-require $BACK_PATH . 'init.php';
-$LANG->includeLLFile('EXT:rtehtmlarea/mod5/locallang.xlf');
-$LANG->includeLLFile('EXT:rtehtmlarea/htmlarea/locallang_dialogs.xlf');
-// Make instance:
-$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\User');
-$SOBE->init();
-$SOBE->main();
-$SOBE->printContent();
index 1186313..697767e 100644 (file)
@@ -1,5 +1,4 @@
 <?php
-// DO NOT REMOVE OR CHANGE THESE 3 LINES:
-define('TYPO3_MOD_PATH', 'sysext/rtehtmlarea/mod6/');
-$BACK_PATH = '../../../';
-$MCONF['name'] = 'txrtehtmlareaparsehtml';
+$MCONF['name'] = 'rtehtmlarea_wizard_parse_html';
+$MCONF['script'] = '_DISPATCH';
+$MCONF['access'] = '';
\ No newline at end of file
diff --git a/typo3/sysext/rtehtmlarea/mod6/index.php b/typo3/sysext/rtehtmlarea/mod6/index.php
new file mode 100644 (file)
index 0000000..c7bf119
--- /dev/null
@@ -0,0 +1,37 @@
+<?php
+/***************************************************************
+ *  Copyright notice
+ *
+ *  (c) 2005-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
+ *  All rights reserved
+ *
+ *  This script is part of the TYPO3 project. The TYPO3 project is
+ *  free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  The GNU General Public License can be found at
+ *  http://www.gnu.org/copyleft/gpl.html.
+ *  A copy is found in the text file GPL.txt and important notices to the license
+ *  from the author is found in LICENSE.txt distributed with these scripts.
+ *
+ *
+ *  This script is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  This copyright notice MUST APPEAR in all copies of the script!
+ ***************************************************************/
+/**
+ * Content parsing for htmlArea RTE
+ *
+ * @author     Stanislas Rolland <typo3(arobas)sjbr.ca>
+ */
+
+// Make instance:
+$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\ContentParser');
+$SOBE->init();
+$SOBE->main();
+$SOBE->printContent();
diff --git a/typo3/sysext/rtehtmlarea/mod6/parse_html.php b/typo3/sysext/rtehtmlarea/mod6/parse_html.php
deleted file mode 100644 (file)
index 37bf65d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-/***************************************************************
- *  Copyright notice
- *
- *  (c) 2005-2013 Stanislas Rolland <typo3(arobas)sjbr.ca>
- *  All rights reserved
- *
- *  This script is part of the TYPO3 project. The TYPO3 project is
- *  free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  The GNU General Public License can be found at
- *  http://www.gnu.org/copyleft/gpl.html.
- *  A copy is found in the text file GPL.txt and important notices to the license
- *  from the author is found in LICENSE.txt distributed with these scripts.
- *
- *
- *  This script is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  This copyright notice MUST APPEAR in all copies of the script!
- ***************************************************************/
-/**
- * Content parsing for htmlArea RTE
- *
- * @author     Stanislas Rolland <typo3(arobas)sjbr.ca>
- */
-error_reporting(E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED));
-unset($MCONF);
-require __DIR__ . '/conf.php';
-require $BACK_PATH . 'init.php';
-// Make instance:
-$SOBE = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Rtehtmlarea\\ContentParser');
-$SOBE->init();
-$SOBE->main();
-$SOBE->printContent();