Exemplo n.º 1
0
 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;
 }