Пример #1
0
 public function run()
 {
     $success = true;
     $use_uuid = false;
     $register_redirect = false;
     $uuid = '';
     $login = '';
     $password = '';
     if (!isset($this->application->parameters['login'])) {
         $success = false;
     } else {
         $login = $this->application->parameters['login'];
         if (!ApplicationModel_User::validateLogin($login)) {
             $success = false;
         }
     }
     if (!isset($this->application->parameters['password'])) {
         $success = false;
     } else {
         $password = $this->application->parameters['password'];
     }
     if (!$success) {
         if (isset($this->application->parameters['uuid'])) {
             $uuid = $this->application->parameters['uuid'];
             if (ApplicationModel_User::validateUuid($uuid)) {
                 $use_uuid = true;
             }
         }
     }
     if ($success) {
         $user = new ApplicationModel_User($this->application);
         try {
             $user->setLogin($login);
             $user->load();
         } catch (ApplicationModelException_User $e) {
             $success = false;
         }
     }
     if ($use_uuid) {
         $success = true;
         $user = new ApplicationModel_User($this->application);
         try {
             $user->setUuid($uuid);
             $user->load();
         } catch (ApplicationModelException_User $e) {
             $success = false;
             $register_redirect = true;
         }
     }
     if ($success) {
         if (!$use_uuid && $user->makePasswordHash($password) != $user->getPasswordHash()) {
             $success = false;
         }
     }
     if ($success) {
         $_SESSION['authorized_user_id'] = $user->getId();
         $_SESSION['authorized_user_login'] = $user->getLogin();
         $this->application->outputHeaders[] = 'HTTP/1.1 302 Found';
         $this->application->outputHeaders[] = 'Location: /account.php';
         $this->application->outputContent = '';
     } elseif ($register_redirect) {
         $this->application->outputHeaders[] = 'HTTP/1.1 302 Found';
         $this->application->outputHeaders[] = 'Location: /register.php?uuid=' . $uuid;
         $this->application->outputContent = '';
     } else {
         $this->application->outputHeaders[] = 'HTTP/1.1 302 Found';
         $this->application->outputHeaders[] = 'Location: /login.php?unsuccessful&login='******'';
     }
 }