private function onSubmit() { $username = $this->registerView->GetUsername(); $password1 = $this->registerView->GetPassword1(); $password2 = $this->registerView->GetPassword2(); try { $user = new User(); if ($password1 === $password2) { $this->registerModel->SetUsername($username); $hashedPassword = $this->registerModel->hashPassword($password1); $user->SetPassword($hashedPassword); } else { $this->registerView->msgPasswordNotSame(); return; } $user->SetUsername($username); $userRepository = new UserRepository(); $userRepository->add($user); $loginView = new LoginView(); $agent = $loginView->GetAgent(); $sessionModel = new SessionModel(); $sessionModel->SetValidSession($agent); $sessionModel->SetUser($username); NavView::redirectToUMLRegisterMSG($username); } catch (RegisterUsernameLengthException $e) { $this->registerView->msgUsernameLength(); } catch (RegexException $e) { $name = $e->getMessage(); $this->registerView->SetUsername($name); $this->registerView->msgUsernameWrongChar($name); } catch (RegisterException $e) { $this->registerView->msgPasswordLength(); } catch (DbUserExistException $e) { $this->registerView->msgUserExist(); } catch (RegisterUsernameMaxLengthException $e) { $this->registerView->msgUsernameMaxLength(); } catch (RegisterPasswordMaxLengthException $e) { $this->registerView->msgPasswordMaxLength(); } }
public function loginView() { // If user submit login. Then log in. if ($this->loginView->userSubmit()) { // Retrieve username and password string from LoginView from user post. $password = $this->loginView->GetPassword(); $username = $this->loginView->GetUsername(); $trueAgent = $this->loginView->GetAgent(); // Check userModel if user can log in. if ($this->loginModel->LogIn($username, $password, $trueAgent)) { // Create cookie if user clicked select box in login view. $this->sessionModel->SetUser($username); if ($this->loginView->wantCookie()) { $this->setCookie(); NavView::redirectToUMLMSG($username); } NavView::redirectToUMLMSG($username); } else { $this->loginView->FailedMSG($username, $password); } } return $this->loginView->show(); }
public function render() { try { $sessionModel = new SessionModel(); $masterView = new MasterView(); // Dependency injection of sessionModel to make sure they all user same. $loginController = new LoginController($sessionModel); $isLoggedIn = $loginController->checkLogin(); $umlToCodeController = new UmlToCodeController(new InterpretModel()); switch (NavView::getAction()) { case NavView::$umlSubmit: if ($isLoggedIn) { $masterView->SetMemberVIew($umlToCodeController->showMemberView($sessionModel)); break; } $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; case NavView::$umlGetLists: if ($isLoggedIn) { $masterView->SetProjectsView($umlToCodeController->projectsView($sessionModel)); $masterView->SetMemberVIew($umlToCodeController->showMemberView($sessionModel)); break; } $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; case NavView::$showProject: if ($isLoggedIn) { $umlToCodeController->selectProject($sessionModel); $masterView->SetMemberVIew($umlToCodeController->showMemberView($sessionModel)); break; } $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; case NavView::$deleteProject: if ($isLoggedIn) { $umlToCodeController->deleteUmlProject($sessionModel); $masterView->SetMemberVIew($umlToCodeController->showMemberView($sessionModel)); break; } $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; case NavView::$registerView: $registerController = new RegisterController(); $masterView->SetRegisterView($registerController->registerView()); break; case NavView::$login: $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; case NavView::$logoutView: $loginController->logout(); break; default: if ($isLoggedIn) { $masterView->SetMemberVIew($umlToCodeController->showMemberView($sessionModel)); break; } $masterView->SetGuestView($umlToCodeController->showGuestView()); $masterView->SetLoginView($loginController->loginView()); break; } return $masterView->render(); } catch (Exception $e) { header('Location: /' . \Settings::$ROOT_PATH . '/common/error.html'); return null; } }