From 5e1ed32d7654e68e7d3e393ab976f5051cc7cf60 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Wed, 7 Nov 2018 00:06:32 +0100 Subject: [PATCH] * [FIX] Some view's variables weren't set when user wasn't logged in. Thanks to @vmario89 for the notice. Closes #1094 Signed-off-by: nuxsmin --- .../web/Controllers/ControllerBase.php | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/app/modules/web/Controllers/ControllerBase.php b/app/modules/web/Controllers/ControllerBase.php index 2478438c..ec44329d 100644 --- a/app/modules/web/Controllers/ControllerBase.php +++ b/app/modules/web/Controllers/ControllerBase.php @@ -98,19 +98,20 @@ abstract class ControllerBase $this->setUp($container); $this->view = $this->dic->get(Template::class); - $this->view->setBase(strtolower($this->controllerName)); $this->isAjax = $this->request->isAjax(); $this->previousSk = $this->session->getSecurityKey(); - if ($this->session->isLoggedIn()) { + $loggedIn = $this->session->isLoggedIn(); + + if ($loggedIn) { $this->userData = clone $this->session->getUserData(); $this->userProfileData = clone $this->session->getUserProfile(); - - $this->setViewVars(); } + $this->setViewVars($loggedIn); + if (method_exists($this, 'initialize')) { $this->initialize(); } @@ -118,19 +119,25 @@ abstract class ControllerBase /** * Set view variables + * + * @param bool $loggedIn */ - private function setViewVars() + private function setViewVars($loggedIn = false) { $this->view->assign('timeStart', $this->request->getServer('REQUEST_TIME_FLOAT')); $this->view->assign('queryTimeStart', microtime()); - $this->view->assign('ctx_userId', $this->userData->getId()); - $this->view->assign('ctx_userGroupId', $this->userData->getUserGroupId()); - $this->view->assign('ctx_userIsAdminApp', $this->userData->getIsAdminApp()); - $this->view->assign('ctx_userIsAdminAcc', $this->userData->getIsAdminAcc()); - $this->view->assign('themeUri', $this->view->getTheme()->getThemeUri()); + + if ($loggedIn) { + $this->view->assign('ctx_userId', $this->userData->getId()); + $this->view->assign('ctx_userGroupId', $this->userData->getUserGroupId()); + $this->view->assign('ctx_userIsAdminApp', $this->userData->getIsAdminApp()); + $this->view->assign('ctx_userIsAdminAcc', $this->userData->getIsAdminAcc()); + } + $this->view->assign('isDemo', $this->configData->isDemoEnabled()); + $this->view->assign('themeUri', $this->view->getTheme()->getThemeUri()); $this->view->assign('configData', $this->configData); - $this->view->assign('sk', $this->session->isLoggedIn() ? $this->session->generateSecurityKey() : ''); + $this->view->assign('sk', $loggedIn ? $this->session->generateSecurityKey() : ''); // Pass the action name to the template as a variable $this->view->assign($this->actionName, true);