Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class LoginController {
- private $layoutView;
- private $loginView;
- private $databaseModel;
- private $sessionModel;
- private $loginModel;
- public function __construct($layoutView, $loginView, $databaseModel) {
- $this->layoutView = $layoutView;
- $this->loginView = $loginView;
- $this->databaseModel = $databaseModel;
- $this->sessionModel = new SessionModel($this->databaseModel);
- $this->loginModel = new LoginModel($this->layoutView, $this->loginView, $this->databaseModel);
- }
- public function newLogin() {
- $this->loginModel->getUserLoginInput();
- if ($this->loginModel->validateLoginRequest()) {
- if ($this->loginModel->isCredentialsMatch()) {
- $this->sessionModel->regenerateSessionId();
- $this->sessionModel->setSessionVariables();
- $this->loginView->setIsLoggedIn();
- if ($this->loginView->isKeepLoggedInRequested()) {
- $this->sessionModel->handleNewCookies($this->loginView->getUsername());
- $this->loginView->setLoginMessage("Welcome and you will be remembered");
- } else {
- $this->loginView->setLoginMessage("Welcome");
- }
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- } else {
- $this->loginView->setLoginMessage("Wrong name or password");
- }
- }
- $this->loginView->setUsernameValue($this->loginView->getUsername());
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- }
- public function loginWithCookies() {
- if ($this->sessionModel->isCookieValid()) {
- $this->loginView->setIsLoggedIn();
- $this->sessionModel->regenerateSessionId();
- if (!$this->sessionModel->isSessionSet()) {
- $this->sessionModel->setSessionVariables();
- $this->loginView->setLoginMessage("Welcome back with cookie");
- }
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- } else {
- $this->sessionModel->destroyCookies();
- $this->loginView->setLoginMessage("Wrong information in cookies");
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- }
- }
- public function loginWithSession() {
- if ($this->sessionModel->isSessionHijacked()) {
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- } else {
- $this->sessionModel->regenerateSessionId();
- $this->loginView->setIsLoggedIn();
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- }
- }
- public function logout() {
- if ($this->sessionModel->isSessionSet()) {
- $this->sessionModel->destroySessionAndCookies();
- $this->loginView->setLoginMessage("Bye bye!");
- }
- $this->layoutView->render($this->loginView->isLoggedIn(), $this->loginView);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement