/** * doAdditionalValidation * * @param \In2code\Powermail\Domain\Model\Mail $mail * @param \In2code\Powermail\Domain\Validator\CustomValidator $pObj */ public function doAdditionalValidation($mail, $pObj) { foreach ($mail->getForm()->getPages() as $page) { foreach ($page->getFields() as $field) { $answer = $this->getAnswerFromField($field, $mail); if ($this->fieldShouldBeValidated($field, $mail)) { switch ($field->getValidation()) { // Date Range case 100: if (!$this->validateDateRange($answer, $field->getValidationConfiguration())) { $pObj->setValidState(FALSE); $pObj->addError('Kein gültiges Datum angegeben!', $field->getMarker()); } break; // IBAN // IBAN case 101: if (!$this->validateIBAN($answer, $field->getValidationConfiguration())) { $pObj->setValidState(FALSE); $pObj->addError('Kein gültiger IBAN eingegeben!', $field->getMarker()); } break; } } else { continue; } } } }
/** * Get Answer from given field out of Mail object * * @param \In2code\Powermail\Domain\Model\Field $field * @param \In2code\Powermail\Domain\Model\Mail $mail * @return \string Answer value */ protected function getAnswerFromField($field, $mail) { foreach ($mail->getAnswers() as $answer) { if ($answer->getField()->getUid() == $field->getUid()) { return $answer->getValue(); } } return ''; }
/** * Get Answer from given field out of Mail object * * @param Field $field * @param Mail $mail * @return string Answer value */ protected function getAnswerFromField(Field $field, Mail $mail) { foreach ($mail->getAnswers() as $answer) { /** @var Answer $answer */ if ($answer->getField() === $field) { return $answer->getValue(); } } return ''; }
/** * Test for createHash() * * @return void * @test */ public function createHashReturnsString() { $form = new Form(); $form->_setProperty('uid', 123); $mail = new Mail(); $mail->_setProperty('uid', 123); $mail->_setProperty('pid', 124); $mail->setForm($form); $result = OptinUtility::createOptinHash($mail); $this->assertEquals('abf068777a', $result); $this->assertTrue(strlen($result) === 10); }
/** * Test for createHash() * * @return void * @test */ public function createHashReturnsString() { $GLOBALS['TYPO3_CONF_VARS']['SYS']['encryptionKey'] = 'abcdef'; $form = new Form(); $form->_setProperty('uid', 123); $mail = new Mail(); $mail->_setProperty('uid', 123); $mail->_setProperty('pid', 124); $mail->setForm($form); $result = OptinUtility::createOptinHash($mail); $this->assertEquals('cf06c6db71', $result); $this->assertTrue(strlen($result) === 10); }
/** * Validation of given Params * * @param Mail $mail * @return bool */ public function isValid($mail) { if (!$this->formHasPassword($mail->getForm()) || $this->ignoreValidationIfConfirmation()) { return true; } foreach ($mail->getAnswers() as $answer) { if ($answer->getField()->getType() !== 'password') { continue; } if ($answer->getValue() !== $this->getMirroredValueOfPasswordField($answer->getField())) { $this->setErrorAndMessage($answer->getField(), 'password'); } } return $this->isValidState(); }
/** * @param \In2code\Powermail\Domain\Model\Mail $mail * @param \In2code\Powermail\Domain\Validator\CustomValidator $object */ public function isValid($mail, $object) { $answers = $mail->getAnswers(); $powermailVars = GeneralUtility::_GP('tx_powermail_pi1'); /** @var \In2code\Powermail\Domain\Model\Answer $answer */ foreach ($answers as $answer) { $field = $answer->getField(); if ($field->getType() == 'recaptcha') { /* * Response will be token if valid, an empty string when not valid * When the previous step doesn't contain the recaptcha, NULL is * returned */ $response = GeneralUtility::_GP('g-recaptcha-response'); if ($response !== NULL) { // Only check if a response is set /** @var \TYPO3\CMS\Extbase\Configuration\ConfigurationManager configurationManager */ $configurationManager = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Configuration\\ConfigurationManager'); $fullTs = $configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_FULL_TYPOSCRIPT); $reCaptchaSettings = $fullTs['plugin.']['tx_powermail.']['settings.']['setup.']['reCAPTCHA.']; if (isset($reCaptchaSettings) && is_array($reCaptchaSettings) && isset($reCaptchaSettings['secretKey']) && $reCaptchaSettings['secretKey']) { $ch = curl_init(); $fields = array('secret' => $reCaptchaSettings['secretKey'], 'response' => $response); //url-ify the data for the POST $fieldsString = ''; foreach ($fields as $key => $value) { $fieldsString .= $key . '=' . $value . '&'; } rtrim($fieldsString, '&'); //set the url, number of POST vars, POST data curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify'); curl_setopt($ch, CURLOPT_POST, count($fields)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $fieldsString); //execute post $result = json_decode(curl_exec($ch)); if (!(bool) $result->success) { $object->setErrorAndMessage($field, LocalizationUtility::translate('validation.possible_robot', 'rhrecaptcha')); } } else { throw new InvalidVariableException(LocalizationUtility::translate('error.no_secretKey', 'rhrecaptcha'), 1358349150); } } } } }
/** * Checks if two email-addresses are equal * * @param \In2code\Powermail\Domain\Model\Mail $mail * @param \In2code\Powermail\Domain\Validator\AbstractValidator $validator */ public function checkEmails(\In2code\Powermail\Domain\Model\Mail $mail, \In2code\Powermail\Domain\Validator\AbstractValidator $validator) { $checkEmailEqualFirstId = ''; $checkEmailEqualSecondId = ''; if ($this->settings['checkEmailEqual'] && $this->settings['checkEmailEqualFirstId'] && $this->settings['checkEmailEqualSecondId']) { /** @var \In2code\Powermail\Domain\Model\Answer $answer */ foreach ($mail->getAnswers() as $answer) { if ($answer->getField()->getUid() == $this->settings['checkEmailEqualFirstId']) { $checkEmailEqualFirstId = $answer->getValue(); } elseif ($answer->getField()->getUid() == $this->settings['checkEmailEqualSecondId']) { $checkEmailEqualSecondId = $answer->getValue(); } } if ($checkEmailEqualFirstId !== $checkEmailEqualSecondId) { $validator->setIsValid(false); } } }
/** * Validation of given Params * * @param Mail $mail * @return bool */ public function isValid($mail) { if ($this->formHasCaptcha($mail->getForm())) { foreach ($mail->getAnswers() as $answer) { /** @var Answer $answer */ if ($answer->getField()->getType() === 'captcha') { $this->setCaptchaArgument(true); if (!$this->validCodePreflight($answer->getValue(), $answer->getField())) { $this->setErrorAndMessage($answer->getField(), 'captcha'); } } } // if no captcha arguments given (maybe deleted from DOM) if (!$this->hasCaptchaArgument()) { $this->addError('captcha', 0); $this->setValidState(false); } } return $this->isValidState(); }
/** * Validation of given Params * * @param \In2code\Powermail\Domain\Model\Mail $mail * @return bool */ public function isValid($mail) { if (!$this->formHasCaptcha($mail->getForm())) { return TRUE; } foreach ($mail->getAnswers() as $answer) { if ($answer->getField()->getType() !== 'captcha') { continue; } $this->captchaArgumentFound = TRUE; if (!$this->captchaEngine->validCode($answer->getValue(), $this->clearSession)) { $this->setErrorAndMessage($answer->getField(), 'captcha'); } } // if no captcha arguments given (maybe deleted from DOM) if (!$this->captchaArgumentFound) { $this->addError('captcha', 0); $this->setIsValid(FALSE); } return $this->getIsValid(); }
/** * Validation of given Params * * @param Mail $mail * @return bool */ public function isValid($mail) { if (empty($this->settings['validation.']['unique.'])) { return $this->isValidState(); } foreach ($this->settings['validation.']['unique.'] as $marker => $amount) { if ((int) $amount === 0) { continue; } foreach ($mail->getAnswers() as $answer) { /** @var Answer $answer */ if ($answer->getField()->getMarker() === $marker) { $numberOfMails = $this->mailRepository->findByMarkerValueForm($marker, $answer->getValue(), $mail->getForm(), FrontendUtility::getStoragePage($this->getStoragePid()))->count(); if ($amount <= $numberOfMails) { $this->setErrorAndMessage($answer->getField(), 'unique'); } } } } return $this->isValidState(); }
/** * Validation of given Mail Params * * @param \In2code\Powermail\Domain\Model\Mail $mail * @return bool */ public function isValid($mail) { foreach ($mail->getAnswers() as $answer) { if ($answer->getValueType() === 3) { if (!is_array($answer->getValue())) { continue; } foreach ($answer->getValue() as $value) { if (!BasicFileUtility::checkExtension($value, $this->settings['misc.']['file.']['extension'])) { $this->setErrorAndMessage($answer->getField(), 'upload_extension'); continue; } if (!BasicFileUtility::checkFilesize($value, $this->settings)) { $this->setErrorAndMessage($answer->getField(), 'upload_size'); continue; } } } } return $this->isValidState(); }
/** * Validation process * * @param Mail $mail * @return Result */ public function validate($mail) { $this->emailFieldMarkerArray = GeneralUtility::trimExplode(',', $this->configuration['emailMarker'], true); $this->confirmEmailFieldMarkerArray = GeneralUtility::trimExplode(',', $this->configuration['emailConfirmMarker'], true); $result = new Result(); foreach ($mail->getAnswers() as $answer) { if (in_array($answer->getField()->getMarker(), $this->emailFieldMarkerArray)) { $emailMarker = $answer->getField()->getMarker(); $email = $answer->getValue(); } if (in_array($answer->getField()->getMarker(), $this->confirmEmailFieldMarkerArray)) { $confirmEmailMarker = $answer->getField()->getMarker(); $confirmEmail = $answer->getValue(); } } if ($email && $confirmEmail && $emailMarker && $confirmEmailMarker && $email !== $confirmEmail) { $result->addError(new Error(LocalizationUtility::translate('validation_email_match', 't3ecom'), $confirmEmailMarker)); $result->addError(new Error(LocalizationUtility::translate('validation_email_match', 't3ecom'), $emailMarker)); } return $result; }
/** * Test for isValid() * * @param string $value * @param bool $expectedResult * @return void * @dataProvider validateIsValidReturnsBoolDataProvider * @test */ public function validateIsValidReturnsBool($value, $expectedResult) { $mail = new Mail(); $field = new Field(); $field->setType(1); $answer1 = new Answer(); $answer1->setValueType(3); $answer1->setValue($value); $answer1->setField($field); $objectStorage = new ObjectStorage(); $objectStorage->attach($answer1); $mail->setAnswers($objectStorage); if ($expectedResult === false) { $this->generalValidatorMock->expects($this->once())->method('setErrorAndMessage'); } else { $this->generalValidatorMock->expects($this->never())->method('setErrorAndMessage'); } $this->generalValidatorMock->_callRef('isValid', $mail); }
/** * Create Hash for Optin Mail * * @param Mail $mail * @return string */ public static function createOptinHash(Mail $mail) { return self::createHash($mail->getUid() . $mail->getPid() . $mail->getForm()->getUid()); }
/** * Update mail record with parsed fields * * @param array $email */ protected function updateMail(array $email) { if ($this->type === 'receiver' && $email['variables']['hash'] === null) { $this->mail->setSenderMail($email['senderEmail']); $this->mail->setSenderName($email['senderName']); $this->mail->setSubject($email['subject']); } }
/** * Returns sendername from a couple of arguments * * @param Mail $mail Given Params * @param string|array $default String as default or cObject array * @param string $glue * @return string Sender Name */ public function getSenderNameFromArguments(Mail $mail, $default = null, $glue = ' ') { $name = ''; foreach ($mail->getAnswers() as $answer) { if (method_exists($answer->getField(), 'getUid') && $answer->getField()->getSenderName()) { if (!is_array($answer->getValue())) { $value = $answer->getValue(); } else { $value = implode($glue, $answer->getValue()); } $name .= $value . $glue; } } if (!trim($name) && $default) { if (!is_array($default)) { $name = $default; } else { /** @var ContentObjectRenderer $contentObject */ $contentObject = GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager')->get('TYPO3\\CMS\\Frontend\\ContentObject\\ContentObjectRenderer'); $name = $contentObject->cObjGetSingle($default[0][$default[1]], $default[0][$default[1] . '.']); } } if (empty($name) && !empty($GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'])) { $name = $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName']; } if (!trim($name)) { $name = LocalizationUtility::translate('error_no_sender_name'); } return trim($name); }
/** * Get value for multi fieldtypes (checkbox, radio) * * @param \In2code\Powermail\Domain\Model\Field $field * @param \In2code\Powermail\Domain\Model\Mail $mail To prefill in Edit Action * @param \int $cycle Cycle Number (1,2,3...) - if filled checkbox or radiobutton * @return string */ protected function getMultiValue(\In2code\Powermail\Domain\Model\Field $field, \In2code\Powermail\Domain\Model\Mail $mail = NULL, $cycle = 0) { $marker = $field->getMarker(); $uid = $field->getUid(); $selected = 0; $index = $cycle - 1; $options = $field->getModifiedSettings(); // edit view if ($mail !== NULL && $mail->getAnswers()) { foreach ($mail->getAnswers() as $answer) { if ($answer->getField() === $field) { $values = $answer->getValue(); foreach ((array) $values as $value) { if ($value === $options[$index]['value'] || $value === $options[$index]['label']) { $selected = 1; } } } } } // if GET/POST with marker (&tx_powermail_pi1[field][marker][index]=value) if (isset($this->piVars['field'][$marker]) && is_array($this->piVars['field'][$marker])) { foreach (array_keys($this->piVars['field'][$marker]) as $key) { if ($this->piVars['field'][$marker][$key] === $options[$index]['value'] || $this->piVars['field'][$marker][$key] === $options[$index]['label']) { $selected = 1; } } } elseif (isset($this->piVars['field'][$marker])) { if ($this->piVars['field'][$marker] == $options[$index]['value'] || $this->piVars['field'][$marker] == $options[$index]['label']) { $selected = 1; } } elseif (isset($this->piVars[$marker]) && is_array($this->piVars[$marker])) { foreach (array_keys($this->piVars[$marker]) as $key) { if ($this->piVars[$marker][$key] === $options[$index]['value'] || $this->piVars[$marker][$key] === $options[$index]['label']) { $selected = 1; } } } elseif (isset($this->piVars[$marker])) { if ($this->piVars[$marker] == $options[$index]['value'] || $this->piVars[$marker] == $options[$index]['label']) { $selected = 1; } } elseif (isset($this->piVars['field'][$uid])) { if (is_array($this->piVars['field'][$uid])) { foreach ($this->piVars['field'][$uid] as $key => $value) { $value = NULL; if ($this->piVars['field'][$uid][$key] == $options[$index]['value'] || $this->piVars['field'][$uid][$key] == $options[$index]['label']) { $selected = 1; } } } else { if ($this->piVars['field'][$uid] == $options[$index]['value'] || $this->piVars['field'][$uid] == $options[$index]['label']) { $selected = 1; } } } elseif (isset($this->piVars['uid' . $uid])) { if ($this->piVars['uid' . $uid] == $options[$index]['value'] || $this->piVars['uid' . $uid] == $options[$index]['label']) { $selected = 1; } } elseif ($field->getFeuserValue() && intval($GLOBALS['TSFE']->fe_user->user['uid']) !== 0) { // if fe_user is logged in if ($GLOBALS['TSFE']->fe_user->user[$field->getFeuserValue()] == $options[$index]['value'] || $GLOBALS['TSFE']->fe_user->user[$field->getFeuserValue()] == $options[$index]['label']) { $selected = 1; } } elseif ($options[$index]['selected']) { $selected = 1; } elseif (isset($this->settings['prefill.'][$marker]) || isset($this->settings['prefill.'][$marker . '.'])) { if (isset($this->settings['prefill.'][$marker . '.']) && is_array($this->settings['prefill.'][$marker . '.'])) { $data = \TYPO3\CMS\Extbase\Reflection\ObjectAccess::getGettableProperties($field); $this->cObj->start($data); if (isset($this->settings['prefill.'][$marker . '.']['0'])) { /** * plugin.tx_powermail.settings.setup.prefill.marker.0 = TEXT * plugin.tx_powermail.settings.setup.prefill.marker.0.value = red */ foreach (array_keys($this->settings['prefill.'][$marker . '.']) as $key) { if (stristr($key, '.')) { continue; } $prefill = $this->cObj->cObjGetSingle($this->settings['prefill.'][$marker . '.'][$key], $this->settings['prefill.'][$marker . '.'][$key . '.']); if ($prefill == $options[$index]['value'] || $prefill == $options[$index]['label']) { $selected = 1; } } } else { /** * plugin.tx_powermail.settings.setup.prefill.marker = TEXT * plugin.tx_powermail.settings.setup.prefill.marker.value = red */ $prefill = $this->cObj->cObjGetSingle($this->settings['prefill.'][$marker], $this->settings['prefill.'][$marker . '.']); if ($prefill == $options[$index]['value'] || $prefill == $options[$index]['label']) { $selected = 1; } } } else { /** * plugin.tx_powermail.settings.setup.prefill.marker = red */ if ($this->settings['prefill.'][$marker] == $options[$index]['value'] || $this->settings['prefill.'][$marker] == $options[$index]['label']) { $selected = 1; } } } return $selected; }
/** * Forward to formAction if wrong form in plugin variables given * used in optinConfirmAction() * * @param Mail $mail * @return void */ protected function forwardIfFormParamsDoNotMatchForOptinConfirm(Mail $mail) { $formsToContent = GeneralUtility::intExplode(',', $this->settings['main']['form']); if ($mail === null || !in_array($mail->getForm()->getUid(), $formsToContent)) { $this->forward('form'); } }
/** * Blacklist String Check: Check if a blacklisted word is in given values * * @param Mail $mail * @param float $indication Indication if check fails * @return void */ protected function blacklistStringCheck(Mail $mail, $indication = 1.0) { if (!$indication) { return; } $blacklist = GeneralUtility::trimExplode(',', $this->settings['spamshield.']['indicator.']['blacklistStringValues'], true); foreach ($mail->getAnswers() as $answer) { if (is_array($answer->getValue())) { continue; } foreach ((array) $blacklist as $blackword) { if ($this->findStringInString($answer->getValue(), $blackword)) { $this->increaseSpamIndicator($indication); $this->addMessage(__FUNCTION__ . ' failed'); return; } } } }
/** * Test for getSenderNameFromArguments() * * @param array $values * @param string $fallback * @param string $defaultMailFromAddress * @param string $expectedResult * @return void * @dataProvider getSenderNameFromArgumentsReturnsStringDataProvider * @test */ public function getSenderNameFromArgumentsReturnsString($values, $fallback, $defaultMailFromAddress, $expectedResult) { $GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailFromName'] = $defaultMailFromAddress; $mail = new Mail(); if (is_array($values)) { foreach ($values as $value) { $answer = new Answer(); $answer->_setProperty('translateFormat', 'Y-m-d'); $answer->_setProperty('valueType', is_array($values) ? 2 : 0); $field = new Field(); $field->setType('input'); $field->setSenderName(true); $answer->_setProperty('value', $value); $answer->setValueType(is_array($value) ? 1 : 0); $answer->setField($field); $mail->addAnswer($answer); } } $result = $this->generalValidatorMock->_callRef('getSenderNameFromArguments', $mail, $fallback); $this->assertSame($expectedResult, $result); }
/** * Blacklist String Check: Check if a blacklisted word is in given values * * @param \In2code\Powermail\Domain\Model\Mail $mail * @param float $indication Indication if check fails * @return void */ protected function blacklistStringCheck(\In2code\Powermail\Domain\Model\Mail $mail, $indication = 1.0) { if (!$indication) { return; } $blacklist = GeneralUtility::trimExplode(',', $this->settings['spamshield.']['indicator.']['blacklistStringValues'], TRUE); // if check failes foreach ($mail->getAnswers() as $answer) { if (is_array($answer->getValue())) { continue; } foreach ((array) $blacklist as $blackword) { if (stristr($answer->getValue(), $blackword)) { $this->increaseSpamIndicator($indication); $this->addMessage(__FUNCTION__ . ' failed'); return; } } } }
/** * Forward to form action if wrong form in plugin variables * * @param \In2code\Powermail\Domain\Model\Mail $mail * @return void */ protected function ignoreWrongForm(Mail $mail) { $pluginHasThisAssignedForms = GeneralUtility::intExplode(',', $this->settings['main']['form']); if (!in_array($mail->getForm()->getUid(), $pluginHasThisAssignedForms)) { $this->forward('form'); } }
/** * File Upload * * @param string $destinationPath * @param string $allowedFileExtensions * @param \In2code\Powermail\Domain\Model\Mail $mail * @return bool */ public static function fileUpload($destinationPath, $allowedFileExtensions = '', \In2code\Powermail\Domain\Model\Mail $mail) { $result = FALSE; if (isset($_FILES['tx_powermail_pi1']['tmp_name']['field']) && self::hasFormAnUploadField($mail->getForm())) { foreach (array_keys($_FILES['tx_powermail_pi1']['tmp_name']['field']) as $marker) { foreach ($_FILES['tx_powermail_pi1']['tmp_name']['field'][$marker] as $key => $tmpName) { $uniqueFileName = self::getUniqueName($_FILES['tx_powermail_pi1']['name']['field'][$marker][$key], $destinationPath); if (!self::checkExtension($uniqueFileName, $allowedFileExtensions)) { continue; } $result = GeneralUtility::upload_copy_move($tmpName, $uniqueFileName); } } } return $result; }
/** * Returns sendername from a couple of arguments * * @param Mail $mail Given Params * @param string|array $default String as default or cObject array * @param string $glue * @return string Sender Name */ public function getSenderNameFromArguments(Mail $mail, $default = null, $glue = ' ') { $name = ''; foreach ($mail->getAnswers() as $answer) { /** @var Answer $answer */ if (method_exists($answer->getField(), 'getUid') && $answer->getField()->isSenderName()) { if (!is_array($answer->getValue())) { $value = $answer->getValue(); } else { $value = implode($glue, $answer->getValue()); } $name .= $value . $glue; } } if (!trim($name) && $default) { if (!is_array($default)) { $name = $default; } else { /** @var ContentObjectRenderer $contentObject */ $contentObject = GeneralUtility::makeInstance(ObjectManager::class)->get(ContentObjectRenderer::class); $name = $contentObject->cObjGetSingle($default[0][$default[1]], $default[0][$default[1] . '.']); } } if (empty($name) && !empty(ConfigurationUtility::getDefaultMailFromName())) { $name = ConfigurationUtility::getDefaultMailFromName(); } if (!trim($name)) { $name = LocalizationUtility::translate('error_no_sender_name'); } return trim($name); }
/** * Test for blacklistStringCheck() * * @param int $spamIndicator * @param array $answerProperties * @param string $blacklist * @param int $expectedOverallSpamIndicator * @return void * @dataProvider blacklistStringCheckReturnsVoidDataProvider * @test */ public function blacklistStringCheckReturnsVoid($spamIndicator, $answerProperties, $blacklist, $expectedOverallSpamIndicator) { $mail = new Mail(); foreach ($answerProperties as $value) { $answer = new Answer(); $answer->setValueType(123); $answer->setValue($value); $mail->addAnswer($answer); } $this->generalValidatorMock->_set('settings', ['spamshield.' => ['indicator.' => ['blacklistStringValues' => $blacklist]]]); $this->generalValidatorMock->_callRef('blacklistStringCheck', $mail, $spamIndicator); $this->assertSame($expectedOverallSpamIndicator, $this->generalValidatorMock->_callRef('getSpamIndicator')); }
/** * File Upload * * @param string $destinationPath * @param Mail $mail * @param string $fileExtensions allowed file extensions * @return bool */ public static function fileUpload($destinationPath, Mail $mail, $fileExtensions = '') { $result = false; $files = self::getFilesArray(); if (isset($files['tx_powermail_pi1']['tmp_name']['field']) && self::hasFormAnUploadField($mail->getForm())) { foreach (array_keys($files['tx_powermail_pi1']['tmp_name']['field']) as $marker) { foreach ($files['tx_powermail_pi1']['tmp_name']['field'][$marker] as $key => $tmpName) { if (!empty($files['tx_powermail_pi1']['name']['field'][$marker][$key])) { $uniqueFileName = self::getUniqueName($files['tx_powermail_pi1']['name']['field'][$marker][$key], $destinationPath); if (self::checkExtension($uniqueFileName, $fileExtensions) && self::checkFolder($uniqueFileName)) { $result = GeneralUtility::upload_copy_move($tmpName, $uniqueFileName); } } } } } return $result; }
/** * Forward to formAction if wrong form in plugin variables given * used in optinConfirmAction() * * @param Mail $mail * @return void */ protected function forwardIfFormParamsDoNotMatchForOptinConfirm(Mail $mail) { $formsToContent = GeneralUtility::intExplode(',', $this->settings['main']['form']); if ($mail === null || !in_array($mail->getForm()->getUid(), $formsToContent)) { GeneralUtility::devLog('Redirect (optin)', $this->extensionName, 2, [$formsToContent, (array) $mail]); $this->forward('form'); } }