Skip to content

Commit

Permalink
[BUGFIX] Clean up install tool cardsAction
Browse files Browse the repository at this point in the history
With the install tool "make all modals" rewrite in #84772,
the initial views are stupid and don't need fluid assignments
like tokens anymore: Card details are now handled in single
"getContent" actions per card.
Left over assignments are removed with the patch.
Furthermore, the core updater getContent action entirely missed
some fluid assignments and the "search in custom path" image
preset functionality is restored.

Resolves: #85676
Resolves: #85419
Related: #84772
Releases: master
Change-Id: I4b2054338b500d4f8d08f83f76a3efc66511a529
Reviewed-on: https://review.typo3.org/57715
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Susanne Moog <susanne.moog@typo3.org>
Tested-by: Susanne Moog <susanne.moog@typo3.org>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
  • Loading branch information
lolli42 authored and wouter90 committed Jul 29, 2018
1 parent d4ca073 commit 77a0ae0
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 57 deletions.
18 changes: 0 additions & 18 deletions typo3/sysext/install/Classes/Controller/EnvironmentController.php
Expand Up @@ -50,24 +50,6 @@ class EnvironmentController extends AbstractController
public function cardsAction(ServerRequestInterface $request): ResponseInterface
{
$view = $this->initializeStandaloneView($request, 'Environment/Cards.html');
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'imageProcessingProcessor' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor'] === 'GraphicsMagick' ? 'GraphicsMagick' : 'ImageMagick',
'imageProcessingEnabled' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_enabled'],
'imageProcessingPath' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_path'],
'imageProcessingVersion' => $this->determineImageMagickVersion(),
'imageProcessingEffects' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['processor_effects'],
'imageProcessingGdlibEnabled' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib'],
'imageProcessingGdlibPng' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['gdlib_png'],
'imageProcessingFileFormats' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],

'mailTestToken' => $formProtection->generateToken('installTool', 'mailTest'),
'mailTestSenderAddress' => $this->getSenderEmailAddress(),

'systemInformationCgiDetected', GeneralUtility::isRunningOnCgiServerApi(),
'systemInformationDatabaseConnections' => $this->getDatabaseConnectionInformation(),
'systemInformationOperatingSystem' => Environment::isWindows() ? 'Windows' : 'Unix',
]);
return new JsonResponse([
'success' => true,
'html' => $view->render(),
Expand Down
12 changes: 0 additions & 12 deletions typo3/sysext/install/Classes/Controller/MaintenanceController.php
Expand Up @@ -52,18 +52,6 @@ class MaintenanceController extends AbstractController
public function cardsAction(ServerRequestInterface $request): ResponseInterface
{
$view = $this->initializeStandaloneView($request, 'Maintenance/Cards.html');
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'clearAllCacheOpcodeCaches' => (new OpcodeCacheService())->getAllActive(),
'clearTablesClearToken' => $formProtection->generateToken('installTool', 'clearTablesClear'),
'clearTypo3tempFilesToken' => $formProtection->generateToken('installTool', 'clearTypo3tempFiles'),
'createAdminToken' => $formProtection->generateToken('installTool', 'createAdmin'),
'databaseAnalyzerExecuteToken' => $formProtection->generateToken('installTool', 'databaseAnalyzerExecute'),
'languagePacksActivateLanguageToken' => $formProtection->generateToken('installTool', 'languagePacksActivateLanguage'),
'languagePacksDeactivateLanguageToken' => $formProtection->generateToken('installTool', 'languagePacksDeactivateLanguage'),
'languagePacksUpdatePackToken' => $formProtection->generateToken('installTool', 'languagePacksUpdatePack'),
'languagePacksUpdateIsoTimesToken' => $formProtection->generateToken('installTool', 'languagePacksUpdateIsoTimes'),
]);
return new JsonResponse([
'success' => true,
'html' => $view->render(),
Expand Down
10 changes: 3 additions & 7 deletions typo3/sysext/install/Classes/Controller/SettingsController.php
Expand Up @@ -50,13 +50,6 @@ class SettingsController extends AbstractController
public function cardsAction(ServerRequestInterface $request): ResponseInterface
{
$view = $this->initializeStandaloneView($request, 'Settings/Cards.html');
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'changeInstallToolPasswordToken' => $formProtection->generateToken('installTool', 'changeInstallToolPassword'),
'presetGetContentToken' => $formProtection->generateToken('installTool', 'presetsGetContent'),
'systemMaintainerWriteToken' => $formProtection->generateToken('installTool', 'systemMaintainerWrite'),
'systemMaintainerIsDevelopmentContext' => GeneralUtility::getApplicationContext()->isDevelopment(),
]);
return new JsonResponse([
'success' => true,
'html' => $view->render(),
Expand Down Expand Up @@ -133,6 +126,7 @@ public function systemMaintainerGetListAction(ServerRequestInterface $request):
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'systemMaintainerWriteToken' => $formProtection->generateToken('installTool', 'systemMaintainerWrite'),
'systemMaintainerIsDevelopmentContext' => GeneralUtility::getApplicationContext()->isDevelopment(),
]);

$connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
Expand Down Expand Up @@ -298,6 +292,8 @@ public function presetsGetContentAction(ServerRequestInterface $request): Respon
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'presetsActivateToken' => $formProtection->generateToken('installTool', 'presetsActivate'),
// This action is called again from within the card itself if a custom image path is supplied
'presetsGetContentToken' => $formProtection->generateToken('installTool', 'presetsGetContent'),
'presetFeatures' => $presetFeatures,
]);
return new JsonResponse([
Expand Down
25 changes: 8 additions & 17 deletions typo3/sysext/install/Classes/Controller/UpgradeController.php
Expand Up @@ -170,23 +170,6 @@ class UpgradeController extends AbstractController
public function cardsAction(ServerRequestInterface $request): ResponseInterface
{
$view = $this->initializeStandaloneView($request, 'Upgrade/Cards.html');
$coreUpdateService = GeneralUtility::makeInstance(CoreUpdateService::class);
$coreVersionService = GeneralUtility::makeInstance(CoreVersionService::class);
$formProtection = FormProtectionFactory::get(InstallToolFormProtection::class);
$view->assignMultiple([
'extensionCompatTesterLoadExtLocalconfToken' => $formProtection->generateToken('installTool', 'extensionCompatTesterLoadExtLocalconf'),
'extensionCompatTesterLoadExtTablesToken' => $formProtection->generateToken('installTool', 'extensionCompatTesterLoadExtTables'),
'extensionCompatTesterUninstallToken' => $formProtection->generateToken('installTool', 'extensionCompatTesterUninstallExtension'),

'coreUpdateEnabled' => $coreUpdateService->isCoreUpdateEnabled(),
'coreUpdateComposerMode' => Environment::isComposerMode(),
'coreUpdateIsReleasedVersion' => $coreVersionService->isInstalledVersionAReleasedVersion(),
'coreUpdateIsSymLinkedCore' => is_link(Environment::getPublicPath() . '/typo3_src'),

'upgradeWizardsMarkUndoneToken' => $formProtection->generateToken('installTool', 'upgradeWizardsMarkUndone'),
'upgradeWizardsInputToken' => $formProtection->generateToken('installTool', 'upgradeWizardsInput'),
'upgradeWizardsExecuteToken' => $formProtection->generateToken('installTool', 'upgradeWizardsExecute'),
]);
return new JsonResponse([
'success' => true,
'html' => $view->render(),
Expand Down Expand Up @@ -247,6 +230,14 @@ public function coreUpdateDownloadAction(ServerRequestInterface $request): Respo
public function coreUpdateGetDataAction(ServerRequestInterface $request): ResponseInterface
{
$view = $this->initializeStandaloneView($request, 'Upgrade/CoreUpdate.html');
$coreUpdateService = GeneralUtility::makeInstance(CoreUpdateService::class);
$coreVersionService = GeneralUtility::makeInstance(CoreVersionService::class);
$view->assignMultiple([
'coreUpdateEnabled' => $coreUpdateService->isCoreUpdateEnabled(),
'coreUpdateComposerMode' => Environment::isComposerMode(),
'coreUpdateIsReleasedVersion' => $coreVersionService->isInstalledVersionAReleasedVersion(),
'coreUpdateIsSymLinkedCore' => is_link(Environment::getPublicPath() . '/typo3_src'),
]);
return new JsonResponse([
'success' => true,
'html' => $view->render(),
Expand Down
Expand Up @@ -10,7 +10,7 @@
Changed values are written to LocalConfiguration.php. The optional file AdditionalConfiguration.php is not controlled by the TYPO3’s core and may override certain settings. Administrators must maintain AdditionalConfiguration.php manually and should be used with caution.
</p>

<div class="t3js-presets-content" data-presets-activate-token="{presetsActivateToken}">
<div class="t3js-presets-content" data-presets-activate-token="{presetsActivateToken}" data-presets-content-token="{presetsGetContentToken}">
<form method="post" class="form-horizontal">
<div class="panel-group" id="accordion" role="tablist" aria-multiselectable="true">
<f:for each="{presetFeatures}" as="feature">
Expand Down
Expand Up @@ -38,10 +38,10 @@ define([
this.currentModal = currentModal;
self.getContent();

// Load content on click image executable path button
// Load content with post data on click 'custom image executable path'
currentModal.on('click', this.selectorImageExecutableTrigger, function(e) {
e.preventDefault();
self.getContent();
self.getCustomImagePathContent();
});

// Write out selected preset
Expand Down Expand Up @@ -75,6 +75,38 @@ define([
});
},

getCustomImagePathContent: function() {
var self = this;
var modalContent = this.currentModal.find(self.selectorModalBody);
var presetsContentToken = self.currentModal.find(this.selectorModuleContent).data('presets-content-token');
$.ajax({
url: Router.getUrl(),
method: 'POST',
data: {
'install': {
'token': presetsContentToken,
'action': 'presetsGetContent',
'values': {
'Image': {
'additionalSearchPath': self.currentModal.find(this.selectorImageExecutable).val()
}
}
}
},
cache: false,
success: function(data) {
if (data.success === true && data.html !== 'undefined' && data.html.length > 0) {
modalContent.empty().append(data.html);
} else {
Notification.error('Something went wrong');
}
},
error: function(xhr) {
Router.handleAjaxError(xhr);
}
});
},

activate: function() {
var self = this;
var executeToken = self.currentModal.find(this.selectorModuleContent).data('presets-activate-token');
Expand Down

0 comments on commit 77a0ae0

Please sign in to comment.