Completed
Push — master ( f4a6ec...c08111 )
by Tim
15:15
created
Classes/Service/AccessService.php 1 patch
Indentation   +146 added lines, -146 removed lines patch added patch discarded remove patch
@@ -25,150 +25,150 @@
 block discarded – undo
25 25
 class AccessService extends AbstractService
26 26
 {
27 27
 
28
-    /**
29
-     * Session service
30
-     *
31
-     * @var \HVP\Html5videoplayerPowermail\Service\SessionService
32
-     * @inject
33
-     */
34
-    protected $sessionService;
35
-
36
-    /**
37
-     * Uri Builder
38
-     *
39
-     * @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
40
-     * @inject
41
-     */
42
-    protected $uriBuilder;
43
-
44
-    /**
45
-     * Flexform service
46
-     *
47
-     * @var \TYPO3\CMS\Extbase\Service\FlexFormService
48
-     * @inject
49
-     */
50
-    protected $flexFormService;
51
-
52
-    /**
53
-     * The session name
54
-     *
55
-     * @var string
56
-     */
57
-    protected $sessionName = 'submittedForms';
58
-
59
-    /**
60
-     * @param Video $video
61
-     */
62
-    public function checkVideoAccess(Video $video = null)
63
-    {
64
-        if ($video === null) {
65
-            return;
66
-        }
67
-
68
-        $formProtection = $this->getFormProtection($video);
69
-        if ($formProtection <= 0) {
70
-            return;
71
-        }
72
-
73
-        // disable the cache
74
-        $message = 'Do not cache video detail page, because every request is check via html5videoplayer_powermail';
75
-        GlobalUtility::getTypoScriptFrontendController($message)
76
-            ->set_no_cache();
77
-
78
-        if ($this->isAccessableByCurrentUser($formProtection)) {
79
-            return;
80
-        }
81
-
82
-        $formPage = $this->findFormPage($formProtection);
83
-        if ($formPage) {
84
-            $this->sessionService->set('videoReturnUrl', GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
85
-
86
-            $uri = $this->uriBuilder->setTargetPageUid($formPage)
87
-                ->build();
88
-            HttpUtility::redirect($uri, HttpUtility::HTTP_STATUS_403);
89
-        }
90
-    }
91
-
92
-    /**
93
-     * @param Form $form
94
-     */
95
-    public function triggerFormSubmit(Form $form)
96
-    {
97
-        if ($this->sessionService->has('videoReturnUrl') && $this->isProtectionForm($form)) {
98
-            $forms = $this->sessionService->has($this->sessionName) ? $this->sessionService->get($this->sessionName) : [];
99
-            $forms[] = $form->getUid();
100
-            $this->sessionService->set($this->sessionName, $forms);
101
-            HttpUtility::redirect($this->sessionService->get('videoReturnUrl'));
102
-        }
103
-    }
104
-
105
-    /**
106
-     * Find the given page UID of the form Protection ID
107
-     *
108
-     * @param int $formProtectionId
109
-     *
110
-     * @return int
111
-     */
112
-    protected function findFormPage($formProtectionId)
113
-    {
114
-        $pluings = $this->findPowermailPlugins();
115
-        foreach ($pluings as $plugin) {
116
-            $configuration = $this->flexFormService->convertFlexFormContentToArray($plugin['pi_flexform']);
117
-            if (isset($configuration['settings']['flexform']['main']['form'])) {
118
-                $formId = $configuration['settings']['flexform']['main']['form'];
119
-                if (MathUtility::canBeInterpretedAsInteger($formId) && (int)$formId == $formProtectionId) {
120
-                    return $plugin['pid'];
121
-                }
122
-            }
123
-        }
124
-        return 0;
125
-    }
126
-
127
-    /**
128
-     * Find all includes Powermail plugins
129
-     *
130
-     * @return array
131
-     */
132
-    protected function findPowermailPlugins()
133
-    {
134
-        $database = GlobalUtility::getDatabaseConnection();
135
-        $pageRepository = new PageRepository();
136
-        $where = 'CType="list" AND list_type="powermail_pi1"' . $pageRepository->enableFields('tt_content');
137
-        return $database->exec_SELECTgetRows('uid,pid,pi_flexform', 'tt_content', $where);
138
-    }
139
-
140
-    /**
141
-     * @param $formProtectionId
142
-     *
143
-     * @return bool
144
-     */
145
-    protected function isAccessableByCurrentUser($formProtectionId)
146
-    {
147
-        $forms = $this->sessionService->has($this->sessionName) ? $this->sessionService->get($this->sessionName) : [];
148
-        return in_array((int)$formProtectionId, $forms);
149
-    }
150
-
151
-    /**
152
-     * @param Form $form
153
-     *
154
-     * @return bool
155
-     */
156
-    protected function isProtectionForm(Form $form)
157
-    {
158
-        return (bool)GlobalUtility::getDatabaseConnection()
159
-            ->exec_SELECTcountRows('*', 'tx_html5videoplayer_domain_model_video', 'powermail_protection=' . $form->getUid());
160
-    }
161
-
162
-    /**
163
-     * Get the Form protection value
164
-     *
165
-     * @param Video $video
166
-     *
167
-     * @return int
168
-     */
169
-    protected function getFormProtection(Video $video)
170
-    {
171
-        $record = BackendUtility::getRecord('tx_html5videoplayer_domain_model_video', $video->getUid());
172
-        return (int)$record['powermail_protection'];
173
-    }
28
+	/**
29
+	 * Session service
30
+	 *
31
+	 * @var \HVP\Html5videoplayerPowermail\Service\SessionService
32
+	 * @inject
33
+	 */
34
+	protected $sessionService;
35
+
36
+	/**
37
+	 * Uri Builder
38
+	 *
39
+	 * @var \TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder
40
+	 * @inject
41
+	 */
42
+	protected $uriBuilder;
43
+
44
+	/**
45
+	 * Flexform service
46
+	 *
47
+	 * @var \TYPO3\CMS\Extbase\Service\FlexFormService
48
+	 * @inject
49
+	 */
50
+	protected $flexFormService;
51
+
52
+	/**
53
+	 * The session name
54
+	 *
55
+	 * @var string
56
+	 */
57
+	protected $sessionName = 'submittedForms';
58
+
59
+	/**
60
+	 * @param Video $video
61
+	 */
62
+	public function checkVideoAccess(Video $video = null)
63
+	{
64
+		if ($video === null) {
65
+			return;
66
+		}
67
+
68
+		$formProtection = $this->getFormProtection($video);
69
+		if ($formProtection <= 0) {
70
+			return;
71
+		}
72
+
73
+		// disable the cache
74
+		$message = 'Do not cache video detail page, because every request is check via html5videoplayer_powermail';
75
+		GlobalUtility::getTypoScriptFrontendController($message)
76
+			->set_no_cache();
77
+
78
+		if ($this->isAccessableByCurrentUser($formProtection)) {
79
+			return;
80
+		}
81
+
82
+		$formPage = $this->findFormPage($formProtection);
83
+		if ($formPage) {
84
+			$this->sessionService->set('videoReturnUrl', GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'));
85
+
86
+			$uri = $this->uriBuilder->setTargetPageUid($formPage)
87
+				->build();
88
+			HttpUtility::redirect($uri, HttpUtility::HTTP_STATUS_403);
89
+		}
90
+	}
91
+
92
+	/**
93
+	 * @param Form $form
94
+	 */
95
+	public function triggerFormSubmit(Form $form)
96
+	{
97
+		if ($this->sessionService->has('videoReturnUrl') && $this->isProtectionForm($form)) {
98
+			$forms = $this->sessionService->has($this->sessionName) ? $this->sessionService->get($this->sessionName) : [];
99
+			$forms[] = $form->getUid();
100
+			$this->sessionService->set($this->sessionName, $forms);
101
+			HttpUtility::redirect($this->sessionService->get('videoReturnUrl'));
102
+		}
103
+	}
104
+
105
+	/**
106
+	 * Find the given page UID of the form Protection ID
107
+	 *
108
+	 * @param int $formProtectionId
109
+	 *
110
+	 * @return int
111
+	 */
112
+	protected function findFormPage($formProtectionId)
113
+	{
114
+		$pluings = $this->findPowermailPlugins();
115
+		foreach ($pluings as $plugin) {
116
+			$configuration = $this->flexFormService->convertFlexFormContentToArray($plugin['pi_flexform']);
117
+			if (isset($configuration['settings']['flexform']['main']['form'])) {
118
+				$formId = $configuration['settings']['flexform']['main']['form'];
119
+				if (MathUtility::canBeInterpretedAsInteger($formId) && (int)$formId == $formProtectionId) {
120
+					return $plugin['pid'];
121
+				}
122
+			}
123
+		}
124
+		return 0;
125
+	}
126
+
127
+	/**
128
+	 * Find all includes Powermail plugins
129
+	 *
130
+	 * @return array
131
+	 */
132
+	protected function findPowermailPlugins()
133
+	{
134
+		$database = GlobalUtility::getDatabaseConnection();
135
+		$pageRepository = new PageRepository();
136
+		$where = 'CType="list" AND list_type="powermail_pi1"' . $pageRepository->enableFields('tt_content');
137
+		return $database->exec_SELECTgetRows('uid,pid,pi_flexform', 'tt_content', $where);
138
+	}
139
+
140
+	/**
141
+	 * @param $formProtectionId
142
+	 *
143
+	 * @return bool
144
+	 */
145
+	protected function isAccessableByCurrentUser($formProtectionId)
146
+	{
147
+		$forms = $this->sessionService->has($this->sessionName) ? $this->sessionService->get($this->sessionName) : [];
148
+		return in_array((int)$formProtectionId, $forms);
149
+	}
150
+
151
+	/**
152
+	 * @param Form $form
153
+	 *
154
+	 * @return bool
155
+	 */
156
+	protected function isProtectionForm(Form $form)
157
+	{
158
+		return (bool)GlobalUtility::getDatabaseConnection()
159
+			->exec_SELECTcountRows('*', 'tx_html5videoplayer_domain_model_video', 'powermail_protection=' . $form->getUid());
160
+	}
161
+
162
+	/**
163
+	 * Get the Form protection value
164
+	 *
165
+	 * @param Video $video
166
+	 *
167
+	 * @return int
168
+	 */
169
+	protected function getFormProtection(Video $video)
170
+	{
171
+		$record = BackendUtility::getRecord('tx_html5videoplayer_domain_model_video', $video->getUid());
172
+		return (int)$record['powermail_protection'];
173
+	}
174 174
 }
Please login to merge, or discard this patch.