diff --git a/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php b/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php index a4b87cf79140d5afe4dca2d33d89c50eaa7ddfbe..7b05af0df616f327575e4d4431702f69f9a95449 100644 --- a/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php +++ b/typo3/sysext/extensionmanager/Classes/Controller/ActionController.php @@ -15,6 +15,7 @@ namespace TYPO3\CMS\Extensionmanager\Controller; +use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Messaging\FlashMessage; use TYPO3\CMS\Core\Package\Exception; use TYPO3\CMS\Core\Package\Exception\PackageStatesFileNotWritableException; @@ -138,6 +139,13 @@ class ActionController extends AbstractController protected function removeExtensionAction($extension) { try { + if (Environment::isComposerMode()) { + throw new ExtensionManagerException( + 'The system is set to composer mode. You are not allowed to remove any extension.', + 1590314046 + ); + } + $this->installUtility->removeExtension($extension); $this->addFlashMessage( LocalizationUtility::translate( diff --git a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html index e4ed5a66537ea0ccef7436b058f04ef88c0f0474..a456122038ba4fc2de945483acb3b3bcd45a4522 100644 --- a/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html +++ b/typo3/sysext/extensionmanager/Resources/Private/Templates/List/Index.html @@ -112,7 +112,9 @@ <div class="btn-group"> <em:processAvailableActions extension="{extension}"> <em:updateScript class="btn btn-default" extensionKey="{extension.key}" /> - <em:removeExtension class="btn btn-default" extension="{extension}" /> + <f:if condition="!{isComposerMode}"> + <em:removeExtension class="btn btn-default" extension="{extension}" /> + </f:if> <f:link.action action="downloadExtensionZip" controller="Action" arguments="{extension:extension.key}" title="{f:translate(key:'extensionList.downloadzip')}" class="btn btn-default"> <core:icon identifier="actions-system-extension-download" /> </f:link.action>