33namespace In2code \Powermail \Domain \Validator ;
44
55use In2code \Powermail \Domain \Model \File ;
6- use In2code \Powermail \Domain \Model \Form ;
76use In2code \Powermail \Domain \Repository \FormRepository ;
7+ use In2code \Powermail \Domain \Repository \MailRepository ;
88use In2code \Powermail \Domain \Service \UploadService ;
99use In2code \Powermail \Utility \ObjectUtility ;
1010use TYPO3 \CMS \Core \Utility \GeneralUtility ;
11+ use TYPO3 \CMS \Extbase \SignalSlot \Exception \InvalidSlotException ;
12+ use TYPO3 \CMS \Extbase \SignalSlot \Exception \InvalidSlotReturnException ;
1113
1214/**
1315 * Class for uploading files and check if they are valid
@@ -20,6 +22,8 @@ class UploadValidator extends AbstractValidator
2022 *
2123 * @param \In2code\Powermail\Domain\Model\Mail $mail
2224 * @return bool
25+ * @throws InvalidSlotException
26+ * @throws InvalidSlotReturnException
2327 */
2428 public function isValid ($ mail )
2529 {
@@ -52,8 +56,13 @@ protected function formHasUploadFields()
5256 {
5357 $ arguments = GeneralUtility::_GP ('tx_powermail_pi1 ' );
5458 $ formRepository = ObjectUtility::getObjectManager ()->get (FormRepository::class);
55- /** @var Form $form */
56- $ form = $ formRepository ->findByUid ((int )$ arguments ['mail ' ]['form ' ]);
59+ if (is_string ($ arguments ['mail ' ])) {
60+ $ mailRepository = ObjectUtility::getObjectManager ()->get (MailRepository::class);
61+ $ mail = $ mailRepository ->findByUid ((int )$ arguments ['mail ' ]);
62+ $ form = $ formRepository ->findByUid ((int )$ mail ->getForm ()->getUid ());
63+ } else {
64+ $ form = $ formRepository ->findByUid ((int )$ arguments ['mail ' ]['form ' ]);
65+ }
5766 return $ form ->hasUploadField ();
5867 }
5968
0 commit comments