From 617fdf7a5edcc098047acd8fe987820341597870 Mon Sep 17 00:00:00 2001
From: Torsten Oppermann <torsten@sgalinski.de>
Date: Thu, 13 Jul 2017 14:49:12 +0200
Subject: [PATCH] [TASK] Mail templates only for root page id

---
 Classes/Controller/MailController.php            | 7 ++++---
 Classes/Domain/Repository/MailRepository.php     | 2 +-
 Classes/Domain/Repository/TemplateRepository.php | 4 +++-
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/Classes/Controller/MailController.php b/Classes/Controller/MailController.php
index 88f844f9..a2640b08 100644
--- a/Classes/Controller/MailController.php
+++ b/Classes/Controller/MailController.php
@@ -81,6 +81,7 @@ class MailController extends ActionController {
 		$selectedLanguageRight = NULL, $selectedExtensionKey = NULL, $selectedTemplateKey = NULL
 	) {
 		$siteRoot = BackendService::getSiteRoot((int) GeneralUtility::_GP('id'));
+		$siteRootId = $siteRoot['uid'];
 
 		if (!($this->session instanceof PhpSession)) {
 			$this->session = $this->objectManager->get('SGalinski\SgMail\Session\PhpSession');
@@ -131,10 +132,10 @@ class MailController extends ActionController {
 		$this->session->setDataByKey('selectedLanguageLeft', $selectedLanguageLeft);
 		$this->session->setDataByKey('selectedLanguageRight', $selectedLanguageRight);
 		$templateLeft = $this->templateRepository->findOneByTemplate(
-			$selectedExtension, $selectedTemplate, $selectedLanguageLeft
+			$selectedExtension, $selectedTemplate, $selectedLanguageLeft, $siteRootId
 		);
 		$templateRight = $this->templateRepository->findOneByTemplate(
-			$selectedExtension, $selectedTemplate, $selectedLanguageRight
+			$selectedExtension, $selectedTemplate, $selectedLanguageRight, $siteRootId
 		);
 
 		if ($templateLeft !== NULL) {
@@ -316,7 +317,7 @@ class MailController extends ActionController {
 	) {
 		/** @var Template $template */
 		$template = $this->templateRepository->findOneByTemplate(
-			$selectedExtension, $selectedTemplate, $selectedLanguage
+			$selectedExtension, $selectedTemplate, $selectedLanguage, $siteRootId
 		);
 
 		$templateAlreadyExists = TRUE;
diff --git a/Classes/Domain/Repository/MailRepository.php b/Classes/Domain/Repository/MailRepository.php
index ec019b52..a611a204 100644
--- a/Classes/Domain/Repository/MailRepository.php
+++ b/Classes/Domain/Repository/MailRepository.php
@@ -55,7 +55,7 @@ class MailRepository extends AbstractRepository {
 	 *
 	 * @param string $extensionKey
 	 * @param string $templateName
-	 * @param int siteroot
+	 * @param int $siteroot
 	 * @param int $limit
 	 * @return array|QueryResultInterface
 	 */
diff --git a/Classes/Domain/Repository/TemplateRepository.php b/Classes/Domain/Repository/TemplateRepository.php
index 978b320f..6909d6b2 100644
--- a/Classes/Domain/Repository/TemplateRepository.php
+++ b/Classes/Domain/Repository/TemplateRepository.php
@@ -38,10 +38,11 @@ class TemplateRepository extends AbstractRepository {
 	 * @param string $extensionKey
 	 * @param string $templateName
 	 * @param string $language
+	 * @param int $siteroot
 	 *
 	 * @return Template
 	 */
-	public function findOneByTemplate($extensionKey, $templateName, $language) {
+	public function findOneByTemplate($extensionKey, $templateName, $language, $siteroot = 0) {
 		$query = $this->createQuery();
 
 		$querySettings = $this->objectManager->get(Typo3QuerySettings::class);
@@ -50,6 +51,7 @@ class TemplateRepository extends AbstractRepository {
 		$constraintsAnd[] = $query->equals('extension_key', $extensionKey);
 		$constraintsAnd[] = $query->equals('template_name', $templateName);
 		$constraintsAnd[] = $query->equals('language', $language);
+		$constraintsAnd[] = $query->equals('site_root_id', (int) $siteroot);
 
 		$query->matching(
 			$query->logicalAnd($constraintsAnd)
-- 
GitLab