public function getUser() { $status = $this->setOnlineStatus(); if ($this->user != null) { return $this->user; } // for test $this->user = new GuestUser(); try { if (isset($_COOKIE["ut"])) { if (isset($_COOKIE["uh"]) && isset($_COOKIE["ud"])) { if ($_COOKIE["ut"] == UserGroups::$USER) { $user = new CustomerUser($_COOKIE["ud"]); } else { if ($_COOKIE["ut"] == UserGroups::$ADMIN) { $user = new AdminUser($_COOKIE["ud"]); } else { if ($_COOKIE["ut"] == UserGroups::$COMPANY) { $user = new CompanyUser($_COOKIE["ud"]); } else { if ($_COOKIE["ut"] == UserGroups::$SERVICE_COMPANY) { $user = new ServiceCompanyUser($_COOKIE["ud"]); } } } } } } if (isset($user) && $user->validate($_COOKIE["uh"])) { $this->user = $user; } if ($this->user && $this->user->getLevel() != UserGroups::$GUEST) { $hash = $_COOKIE["uh"]; if (!$status) { $hash = $this->updateUserHash($_COOKIE["ud"]); $this->updateUserUniqueId($user); } $this->user->setUniqueId($hash, false); } } catch (InvalidUserException $ex) { } return $this->user; }