MCPcopy Create free account
hub / github.com/Rello/analytics / indexPublic

Method indexPublic

lib/Controller/PageController.php:172–202  ·  view source on GitHub ↗

* @param $token * @param string $password * @return TemplateResponse|RedirectResponse */

($token, string $password = '')

Source from the content-addressed store, hash-verified

170 * @return TemplateResponse|RedirectResponse
171 */
172 #[PublicPage]
173 #[UseSession]
174 #[NoCSRFRequired]
175 public function indexPublic($token, string $password = '')
176 {
177 $share = $this->ShareService->getReportByToken($token);
178
179 if (empty($share)) {
180 // Dataset not shared or wrong token
181 return new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', [
182 'redirect_url' => $this->urlGenerator->linkToRoute($this->appName . '.page.report', ['token' => $token]),
183 ]));
184 } else {
185 if ($share['password'] !== null) {
186 $password = $password !== '' ? $password : (string)$this->DataSession->getPasswordForShare($token);
187 $passwordVerification = $this->ShareService->verifyPassword($password, $share['password']);
188 if ($passwordVerification === true) {
189 $this->DataSession->setPasswordForShare($token, $password);
190 } else {
191 $this->DataSession->removePasswordForShare($token);
192 return new TemplateResponse($this->appName, 'authenticate', ['wrongpw' => $password !== '',], 'guest');
193 }
194 }
195 $params = array();
196 $params['token'] = $token;
197 $response = new PublicTemplateResponse($this->appName, 'public', $params);
198 $response->setHeaderTitle('Nextcloud Analytics');
199 $response->setFooterVisible(false);
200 return $response;
201 }
202 }
203
204 /**
205 * @param $token

Callers 1

authenticatePasswordMethod · 0.95

Calls 5

getPasswordForShareMethod · 0.80
verifyPasswordMethod · 0.80
setPasswordForShareMethod · 0.80
getReportByTokenMethod · 0.45

Tested by

no test coverage detected