Skip to content
Snippets Groups Projects
Commit cede6c7b authored by Torsten Oppermann's avatar Torsten Oppermann
Browse files

Merge branch 'feature_security_update' of gitlab.sgalinski.de:typo3/sg_mail...

Merge branch 'feature_security_update' of gitlab.sgalinski.de:typo3/sg_mail into feature_security_update
parents 71d7b76b e9643878
No related branches found
No related tags found
1 merge request!11Feature security update
...@@ -92,7 +92,7 @@ class FormsFinisher extends AbstractFinisher { ...@@ -92,7 +92,7 @@ class FormsFinisher extends AbstractFinisher {
} }
} }
$templateName = $this->parseOption('template'); $templateName = trim($this->parseOption('template'));
if ($this->parseOption('template') === '') { if ($this->parseOption('template') === '') {
$templateName = $formDefinition->getIdentifier(); $templateName = $formDefinition->getIdentifier();
} }
...@@ -107,12 +107,36 @@ class FormsFinisher extends AbstractFinisher { ...@@ -107,12 +107,36 @@ class FormsFinisher extends AbstractFinisher {
$mailTemplateService->setIgnoreMailQueue($ignoreMailQueue); $mailTemplateService->setIgnoreMailQueue($ignoreMailQueue);
$mailTemplateService->setLanguage($GLOBALS['TSFE']->config['config']['language']); $mailTemplateService->setLanguage($GLOBALS['TSFE']->config['config']['language']);
$mailTemplateService->setToAddresses($this->parseOption('mailTo'));
$mailTemplateService->setFromAddress($this->parseOption('mailFrom')); $mailToAdresses = trim($this->parseOption('mailTo'));
$mailTemplateService->setFromName($this->parseOption('userName')); if ($mailToAdresses !== '') {
$mailTemplateService->setReplyToAddress($this->parseOption('replyTo')); $mailTemplateService->setToAddresses($this->parseOption('mailTo'));
$mailTemplateService->setCcAddresses($this->parseOption('cc')); }
$mailTemplateService->setBccAddresses($this->parseOption('bcc'));
$fromAddress = trim($this->parseOption('mailFrom'));
if ($fromAddress !== '') {
$mailTemplateService->setFromAddress($fromAddress);
}
$fromName = trim($this->parseOption('userName'));
if ($fromName !== '') {
$mailTemplateService->setFromName($fromName);
}
$replyTo = trim($this->parseOption('replyTo'));
if ($replyTo !== '') {
$mailTemplateService->setReplyToAddress($replyTo);
}
$ccAddresses = trim($this->parseOption('cc'));
if ($ccAddresses !== '') {
$mailTemplateService->setCcAddresses($ccAddresses);
}
$bccAddresses = trim($this->parseOption('bcc'));
if ($bccAddresses !== '') {
$mailTemplateService->setBccAddresses($bccAddresses);
}
$mailTemplateService->sendEmail(); $mailTemplateService->sendEmail();
} }
......
...@@ -206,11 +206,11 @@ class MailTemplateService { ...@@ -206,11 +206,11 @@ class MailTemplateService {
} }
} }
if (count($this->bccAddresses) > 0) { if (\count($this->bccAddresses) > 0) {
$this->mailMessage->setBcc($this->bccAddresses); $this->mailMessage->setBcc($this->bccAddresses);
} }
if (count($this->ccAddresses) > 0) { if (\count($this->ccAddresses) > 0) {
$this->mailMessage->setCc($this->ccAddresses); $this->mailMessage->setCc($this->ccAddresses);
} }
} }
...@@ -223,7 +223,7 @@ class MailTemplateService { ...@@ -223,7 +223,7 @@ class MailTemplateService {
* @param string $extensionKey * @param string $extensionKey
* @return array * @return array
*/ */
public static function getDefaultTemplateMarker($translationKey, array $marker, $extensionKey = 'sg_mail') { public static function getDefaultTemplateMarker($translationKey, array $marker, $extensionKey = 'sg_mail'): array {
$languagePath = 'LLL:EXT:' . $extensionKey . '/Resources/Private/Language/locallang.xlf:' . $translationKey; $languagePath = 'LLL:EXT:' . $extensionKey . '/Resources/Private/Language/locallang.xlf:' . $translationKey;
// Need the key for translations // Need the key for translations
...@@ -267,8 +267,9 @@ class MailTemplateService { ...@@ -267,8 +267,9 @@ class MailTemplateService {
} }
if ($this->pid) { if ($this->pid) {
$pageUid = (int) $this->pid; $pageUid = $this->pid;
} }
if ($pageUid === 0) { if ($pageUid === 0) {
$pageRepository = $this->objectManager->get(PageRepository::class); $pageRepository = $this->objectManager->get(PageRepository::class);
$rootPageRows = $pageRepository->getRecordsByField( $rootPageRows = $pageRepository->getRecordsByField(
...@@ -297,15 +298,14 @@ class MailTemplateService { ...@@ -297,15 +298,14 @@ class MailTemplateService {
} }
// get default template content from register array // get default template content from register array
$defaultTemplateContent = $registerService->getRegisterArray( $defaultTemplateContent = $registerService->getRegisterArray()
)[$this->extensionKey][$this->templateName]['templateContent']; [$this->extensionKey][$this->templateName]['templateContent'];
// var_dump($registerService->getRegisterArray()[$this->extensionKey][$this->templateName]); die();
// var_dump($defaultTemplateContent); die();
// If there is no template for this language, use the default template // If there is no template for this language, use the default template
if ($template === NULL) { if ($template === NULL) {
if ($defaultTemplateContent === NULL) { if ($defaultTemplateContent === NULL) {
$templatePath = $registerService->getRegisterArray( $templatePath = $registerService->getRegisterArray()
)[$this->extensionKey][$this->templateName]['templatePath']; [$this->extensionKey][$this->templateName]['templatePath'];
// only standard template file is considered since version 4.1 // only standard template file is considered since version 4.1
$defaultTemplateFile = $templatePath . 'template.html'; $defaultTemplateFile = $templatePath . 'template.html';
...@@ -334,8 +334,8 @@ class MailTemplateService { ...@@ -334,8 +334,8 @@ class MailTemplateService {
if ($isPreview) { if ($isPreview) {
$previewMarker = []; $previewMarker = [];
/** @var array $markerArray */
/** @var array $markerArray */
$markerArray = $registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['marker']; $markerArray = $registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['marker'];
foreach ($markerArray as $marker) { foreach ($markerArray as $marker) {
$markerPath = GeneralUtility::trimExplode('.', $marker['marker']); $markerPath = GeneralUtility::trimExplode('.', $marker['marker']);
...@@ -373,7 +373,8 @@ class MailTemplateService { ...@@ -373,7 +373,8 @@ class MailTemplateService {
$subject = $registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['subject']; $subject = $registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['subject'];
if (\is_array($subject)) { if (\is_array($subject)) {
$subject = \trim( $subject = \trim(
$registerService->getRegisterArray()[$this->extensionKey][$this->templateName]['subject'][$this->language] $registerService->getRegisterArray()
[$this->extensionKey][$this->templateName]['subject'][$this->language]
); );
} }
if ($subject === NULL && $this->subject !== NULL) { if ($subject === NULL && $this->subject !== NULL) {
...@@ -543,7 +544,7 @@ class MailTemplateService { ...@@ -543,7 +544,7 @@ class MailTemplateService {
* @param string $toAddresses * @param string $toAddresses
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setToAddresses($toAddresses) { public function setToAddresses($toAddresses): MailTemplateService {
$toAddresses = trim(preg_replace('~\x{00a0}~siu', ' ', $toAddresses)); $toAddresses = trim(preg_replace('~\x{00a0}~siu', ' ', $toAddresses));
$this->toAddresses = $toAddresses; $this->toAddresses = $toAddresses;
...@@ -560,7 +561,7 @@ class MailTemplateService { ...@@ -560,7 +561,7 @@ class MailTemplateService {
* @param string $fromName * @param string $fromName
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setFromAddress($fromAddress, $fromName = '') { public function setFromAddress($fromAddress, $fromName = ''): MailTemplateService {
if ($fromAddress) { if ($fromAddress) {
$this->fromAddress = $fromAddress; $this->fromAddress = $fromAddress;
$this->mailMessage->setFrom($fromAddress, $fromName); $this->mailMessage->setFrom($fromAddress, $fromName);
...@@ -573,7 +574,7 @@ class MailTemplateService { ...@@ -573,7 +574,7 @@ class MailTemplateService {
* @param string $ccAddresses * @param string $ccAddresses
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setCcAddresses($ccAddresses) { public function setCcAddresses($ccAddresses): MailTemplateService {
if ($ccAddresses) { if ($ccAddresses) {
$this->ccAddresses = $ccAddresses; $this->ccAddresses = $ccAddresses;
$this->mailMessage->setCc(GeneralUtility::trimExplode(',', $this->ccAddresses)); $this->mailMessage->setCc(GeneralUtility::trimExplode(',', $this->ccAddresses));
...@@ -586,7 +587,7 @@ class MailTemplateService { ...@@ -586,7 +587,7 @@ class MailTemplateService {
* @param string $replyToAddress * @param string $replyToAddress
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setReplyToAddress($replyToAddress) { public function setReplyToAddress($replyToAddress): MailTemplateService {
if ($replyToAddress) { if ($replyToAddress) {
$this->replyToAddress = $replyToAddress; $this->replyToAddress = $replyToAddress;
$this->mailMessage->setReplyTo($replyToAddress); $this->mailMessage->setReplyTo($replyToAddress);
...@@ -599,7 +600,7 @@ class MailTemplateService { ...@@ -599,7 +600,7 @@ class MailTemplateService {
* @param string $language * @param string $language
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setLanguage($language) { public function setLanguage($language): MailTemplateService {
$this->language = $language; $this->language = $language;
return $this; return $this;
} }
...@@ -608,7 +609,7 @@ class MailTemplateService { ...@@ -608,7 +609,7 @@ class MailTemplateService {
* @param boolean $ignoreMailQueue * @param boolean $ignoreMailQueue
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setIgnoreMailQueue($ignoreMailQueue) { public function setIgnoreMailQueue($ignoreMailQueue): MailTemplateService {
$this->ignoreMailQueue = $ignoreMailQueue; $this->ignoreMailQueue = $ignoreMailQueue;
return $this; return $this;
} }
...@@ -617,7 +618,7 @@ class MailTemplateService { ...@@ -617,7 +618,7 @@ class MailTemplateService {
* @param string $templateName * @param string $templateName
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setTemplateName($templateName) { public function setTemplateName($templateName): MailTemplateService {
$this->templateName = $templateName; $this->templateName = $templateName;
return $this; return $this;
} }
...@@ -626,7 +627,7 @@ class MailTemplateService { ...@@ -626,7 +627,7 @@ class MailTemplateService {
* @param string $extensionKey * @param string $extensionKey
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setExtensionKey($extensionKey) { public function setExtensionKey($extensionKey): MailTemplateService {
$this->extensionKey = $extensionKey; $this->extensionKey = $extensionKey;
return $this; return $this;
} }
...@@ -635,7 +636,7 @@ class MailTemplateService { ...@@ -635,7 +636,7 @@ class MailTemplateService {
* @param array $markers * @param array $markers
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setMarkers(array $markers) { public function setMarkers(array $markers): MailTemplateService {
$this->markers = $markers; $this->markers = $markers;
return $this; return $this;
} }
...@@ -644,7 +645,7 @@ class MailTemplateService { ...@@ -644,7 +645,7 @@ class MailTemplateService {
* @param string $bccAddresses * @param string $bccAddresses
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setBccAddresses($bccAddresses) { public function setBccAddresses($bccAddresses): MailTemplateService {
if ($bccAddresses) { if ($bccAddresses) {
$this->bccAddresses = $bccAddresses; $this->bccAddresses = $bccAddresses;
$this->mailMessage->setBcc(GeneralUtility::trimExplode(',', $this->bccAddresses)); $this->mailMessage->setBcc(GeneralUtility::trimExplode(',', $this->bccAddresses));
...@@ -657,7 +658,7 @@ class MailTemplateService { ...@@ -657,7 +658,7 @@ class MailTemplateService {
* @param int $priority * @param int $priority
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setPriority($priority) { public function setPriority($priority): MailTemplateService {
$this->priority = $priority; $this->priority = $priority;
return $this; return $this;
} }
...@@ -668,7 +669,7 @@ class MailTemplateService { ...@@ -668,7 +669,7 @@ class MailTemplateService {
* @param string $contentType * @param string $contentType
* @return MailTemplateService * @return MailTemplateService
*/ */
public function addAttachment($data, $filename, $contentType) { public function addAttachment($data, $filename, $contentType): MailTemplateService {
$attachment = Swift_Attachment::newInstance() $attachment = Swift_Attachment::newInstance()
->setFilename($filename) ->setFilename($filename)
->setContentType($contentType) ->setContentType($contentType)
...@@ -683,7 +684,7 @@ class MailTemplateService { ...@@ -683,7 +684,7 @@ class MailTemplateService {
* @param FileInterface|FileReference $file * @param FileInterface|FileReference $file
* @return MailTemplateService * @return MailTemplateService
*/ */
public function addFileResourceAttachment($file) { public function addFileResourceAttachment($file): MailTemplateService {
if ($file instanceof FileReference) { if ($file instanceof FileReference) {
$file = $file->getOriginalResource()->getOriginalFile(); $file = $file->getOriginalResource()->getOriginalFile();
} }
...@@ -706,7 +707,7 @@ class MailTemplateService { ...@@ -706,7 +707,7 @@ class MailTemplateService {
/** /**
* @return MailMessage * @return MailMessage
*/ */
public function getMailMessage() { public function getMailMessage(): MailMessage {
return $this->mailMessage; return $this->mailMessage;
} }
...@@ -774,7 +775,7 @@ class MailTemplateService { ...@@ -774,7 +775,7 @@ class MailTemplateService {
* @param int $pid * @param int $pid
* @return MailTemplateService * @return MailTemplateService
*/ */
public function setPid($pid) { public function setPid($pid): MailTemplateService {
$this->pid = (int) $pid; $this->pid = (int) $pid;
return $this; return $this;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment