From 4d559269bb3b22b7540a61ddb8eb394ff54c5395 Mon Sep 17 00:00:00 2001 From: Ralf Zimmermann <ralf.zimmermann@tritum.de> Date: Thu, 31 May 2018 22:05:27 +0200 Subject: [PATCH] [BUGFIX] Only list valid forms Only list valid forms within the form manger and the form plugin. Valid forms have an "identifier" and a "type" and the type must be "Form". Resolves: #85132 Releases: master, 8.7 Change-Id: I2f473925b3edf839d5f965136b6b02030671350a Reviewed-on: https://review.typo3.org/57108 Reviewed-by: Jan Helke <typo3@helke.de> Tested-by: Jan Helke <typo3@helke.de> Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by: Mona Muzaffar <mona.muzaffar@gmx.de> Tested-by: Mona Muzaffar <mona.muzaffar@gmx.de> Tested-by: TYPO3com <no-reply@typo3.com> --- .../Persistence/FormPersistenceManager.php | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/typo3/sysext/form/Classes/Mvc/Persistence/FormPersistenceManager.php b/typo3/sysext/form/Classes/Mvc/Persistence/FormPersistenceManager.php index f0eb1500cdb7..869de1dee4db 100644 --- a/typo3/sysext/form/Classes/Mvc/Persistence/FormPersistenceManager.php +++ b/typo3/sysext/form/Classes/Mvc/Persistence/FormPersistenceManager.php @@ -259,18 +259,20 @@ class FormPersistenceManager implements FormPersistenceManagerInterface $persistenceIdentifier = $storage->getUid() . ':' . $file->getIdentifier(); $form = $this->load($persistenceIdentifier); - $forms[] = [ - 'identifier' => $form['identifier'], - 'name' => $form['label'] ?? $form['identifier'], - 'persistenceIdentifier' => $persistenceIdentifier, - 'readOnly' => $formReadOnly, - 'removable' => true, - 'location' => 'storage', - 'duplicateIdentifier' => false, - 'invalid' => $form['invalid'], - 'error' => $form['error'], - ]; - $identifiers[$form['identifier']]++; + if (isset($form['identifier'], $form['type']) && $form['type'] === 'Form') { + $forms[] = [ + 'identifier' => $form['identifier'], + 'name' => $form['label'] ?? $form['identifier'], + 'persistenceIdentifier' => $persistenceIdentifier, + 'readOnly' => $formReadOnly, + 'removable' => true, + 'location' => 'storage', + 'duplicateIdentifier' => false, + 'invalid' => $form['invalid'], + 'error' => $form['error'], + ]; + $identifiers[$form['identifier']]++; + } } $storage->resetFileAndFolderNameFiltersToDefault(); } @@ -282,18 +284,20 @@ class FormPersistenceManager implements FormPersistenceManagerInterface continue; } $form = $this->load($relativePath . $fileInfo->getFilename()); - $forms[] = [ - 'identifier' => $form['identifier'], - 'name' => $form['label'] ?? $form['identifier'], - 'persistenceIdentifier' => $relativePath . $fileInfo->getFilename(), - 'readOnly' => $this->formSettings['persistenceManager']['allowSaveToExtensionPaths'] ? false: true, - 'removable' => $this->formSettings['persistenceManager']['allowDeleteFromExtensionPaths'] ? true: false, - 'location' => 'extension', - 'duplicateIdentifier' => false, - 'invalid' => $form['invalid'], - 'error' => $form['error'], - ]; - $identifiers[$form['identifier']]++; + if (isset($form['identifier'], $form['type']) && $form['type'] === 'Form') { + $forms[] = [ + 'identifier' => $form['identifier'], + 'name' => $form['label'] ?? $form['identifier'], + 'persistenceIdentifier' => $relativePath . $fileInfo->getFilename(), + 'readOnly' => $this->formSettings['persistenceManager']['allowSaveToExtensionPaths'] ? false: true, + 'removable' => $this->formSettings['persistenceManager']['allowDeleteFromExtensionPaths'] ? true: false, + 'location' => 'extension', + 'duplicateIdentifier' => false, + 'invalid' => $form['invalid'], + 'error' => $form['error'], + ]; + $identifiers[$form['identifier']]++; + } } } -- GitLab