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='******''; } }