[!!!][TASK] Migrate modules to regular backend routing 81/53881/13
authorMatthias Vogel <typo3@kanti.de>
Sat, 9 Sep 2017 11:04:20 +0000 (13:04 +0200)
committerBenni Mack <benni@typo3.org>
Sat, 9 Sep 2017 17:43:09 +0000 (19:43 +0200)
commitae18caad69fee5920adeb82d13ba98ba58cadf24
tree42a9e2e2a3da8026b6ff4b362a0da5cf926e4e42
parentb8de7cf87ac01a85d3100b6e232b013fa148521b
[!!!][TASK] Migrate modules to regular backend routing

This patch removes the separate request handler for backend modules,
which was accessed via "&M=moduleName" GET parameter. This is now
migrated into the RouteDispatcher which can dispatch modules as well.

Now, modules are called via the "&route" parameter like all other routes.

Additionally, the requested URLs for modules were requested with the additional
"moduleToken" which is now called "token".

This way, special treatment for modules when dispatching is removed,
however the security checks are still in place so this is kept as is.

All places where URLs are generated can now still be accessed via
`BackendUtility::getModuleUrl()` which can deal with routes, module names
and routePaths (from the URL) to keep backwards-compatibility.

Next Steps:
- Migration wizard for bookmarks + Streamline bookmarks code (see todos)
- Check what needs to be added in ExtensionManagementUtility
- Introduce slugs in routes for BE, e.g. /file-edit/{fileId}/ and /module/page/view/{id}
- Document reserved GET parameters "id", "route" and "token"
- Cleanup usage of determineScriptId and getModuleUrl to use new API

Resolves: #82406
Releases: master
Change-Id: If11c3d5289e14bc9ea766468b8e94cce95c23c71
Reviewed-on: https://review.typo3.org/53881
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
Reviewed-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Tested-by: Stefan Neufeind <typo3.neufeind@speedpartner.de>
Reviewed-by: Matthias Vogel <typo3@kanti.de>
Tested-by: Matthias Vogel <typo3@kanti.de>
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Benni Mack <benni@typo3.org>
38 files changed:
typo3/sysext/backend/Classes/Backend/ToolbarItems/ShortcutToolbarItem.php
typo3/sysext/backend/Classes/Controller/EditDocumentController.php
typo3/sysext/backend/Classes/Controller/PageLayoutController.php
typo3/sysext/backend/Classes/Http/Application.php
typo3/sysext/backend/Classes/Http/BackendModuleRequestHandler.php [deleted file]
typo3/sysext/backend/Classes/Http/RequestHandler.php
typo3/sysext/backend/Classes/Http/RouteDispatcher.php
typo3/sysext/backend/Classes/RecordList/AbstractRecordList.php
typo3/sysext/backend/Classes/Routing/UriBuilder.php
typo3/sysext/backend/Classes/Template/Components/Buttons/Action/ShortcutButton.php
typo3/sysext/backend/Classes/Template/DocumentTemplate.php
typo3/sysext/backend/Classes/Template/ModuleTemplate.php
typo3/sysext/backend/Classes/Tree/View/AbstractTreeView.php
typo3/sysext/backend/Classes/Utility/BackendUtility.php
typo3/sysext/beuser/Classes/Controller/BackendUserActionController.php
typo3/sysext/beuser/Classes/Controller/PermissionController.php
typo3/sysext/core/Classes/Utility/ExtensionManagementUtility.php
typo3/sysext/core/Documentation/Changelog/master/Breaking-82406-RoutingBackendModulesRunThroughRegularDispatcher.rst [new file with mode: 0644]
typo3/sysext/cshmanual/Classes/Controller/HelpController.php
typo3/sysext/extbase/Classes/Mvc/Web/Routing/UriBuilder.php
typo3/sysext/extbase/Tests/Unit/Mvc/Web/Routing/UriBuilderTest.php
typo3/sysext/filelist/Classes/FileList.php
typo3/sysext/fluid/Classes/ViewHelpers/Be/Buttons/ShortcutViewHelper.php
typo3/sysext/form/Classes/Controller/FormManagerController.php
typo3/sysext/info/Classes/Controller/InfoModuleController.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php
typo3/sysext/lowlevel/Classes/Utility/ArrayBrowser.php
typo3/sysext/recordlist/Classes/Browser/AbstractElementBrowser.php
typo3/sysext/recordlist/Classes/Controller/AbstractLinkBrowserController.php
typo3/sysext/recordlist/Classes/RecordList/AbstractDatabaseRecordList.php
typo3/sysext/recordlist/Classes/RecordList/DatabaseRecordList.php
typo3/sysext/recycler/Classes/Controller/RecyclerModuleController.php
typo3/sysext/reports/Classes/Controller/ReportController.php
typo3/sysext/tstemplate/Classes/Controller/TypoScriptTemplateModuleController.php
typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php
typo3/sysext/workspaces/Classes/Controller/PreviewController.php
typo3/sysext/workspaces/Classes/Controller/ReviewController.php
typo3/sysext/workspaces/Classes/Service/WorkspaceService.php