diff --git a/application/controllers/ApplicationStateController.php b/application/controllers/ApplicationStateController.php index 18c2b763b..7d7b2ed75 100644 --- a/application/controllers/ApplicationStateController.php +++ b/application/controllers/ApplicationStateController.php @@ -14,43 +14,48 @@ use Icinga\Web\Session; */ class ApplicationStateController extends Controller { + protected $requiresAuthentication = false; + public function indexAction() { $this->_helper->layout()->disableLayout(); - if (isset($_COOKIE['icingaweb2-session'])) { - $last = (int) $_COOKIE['icingaweb2-session']; - } else { - $last = 0; - } - $now = time(); - if ($last + 600 < $now) { - Session::getSession()->write(); - $params = session_get_cookie_params(); - setcookie( - 'icingaweb2-session', - $now, - null, - $params['path'], - $params['domain'], - $params['secure'], - $params['httponly'] - ); - $_COOKIE['icingaweb2-session'] = $now; - } - $announcementCookie = new AnnouncementCookie(); - $announcementRepo = new AnnouncementIniRepository(); - if ($announcementCookie->getEtag() !== $announcementRepo->getEtag()) { - $announcementCookie - ->setEtag($announcementRepo->getEtag()) - ->setNextActive($announcementRepo->findNextActive()); - $this->getResponse()->setCookie($announcementCookie); - $this->getResponse()->setHeader('X-Icinga-Announcements', 'refresh', true); - } else { - $nextActive = $announcementCookie->getNextActive(); - if ($nextActive && $nextActive <= $now) { - $announcementCookie->setNextActive($announcementRepo->findNextActive()); + + if ($this->Auth()->isAuthenticated()) { + if (isset($_COOKIE['icingaweb2-session'])) { + $last = (int) $_COOKIE['icingaweb2-session']; + } else { + $last = 0; + } + $now = time(); + if ($last + 600 < $now) { + Session::getSession()->write(); + $params = session_get_cookie_params(); + setcookie( + 'icingaweb2-session', + $now, + null, + $params['path'], + $params['domain'], + $params['secure'], + $params['httponly'] + ); + $_COOKIE['icingaweb2-session'] = $now; + } + $announcementCookie = new AnnouncementCookie(); + $announcementRepo = new AnnouncementIniRepository(); + if ($announcementCookie->getEtag() !== $announcementRepo->getEtag()) { + $announcementCookie + ->setEtag($announcementRepo->getEtag()) + ->setNextActive($announcementRepo->findNextActive()); $this->getResponse()->setCookie($announcementCookie); $this->getResponse()->setHeader('X-Icinga-Announcements', 'refresh', true); + } else { + $nextActive = $announcementCookie->getNextActive(); + if ($nextActive && $nextActive <= $now) { + $announcementCookie->setNextActive($announcementRepo->findNextActive()); + $this->getResponse()->setCookie($announcementCookie); + $this->getResponse()->setHeader('X-Icinga-Announcements', 'refresh', true); + } } }