/**
  * Create HTTP response
  *
  * Should be called after a login attempt has been determined
  * @sideeffect Sets cookies!
  * @return String HTML
  */
 public function response()
 {
     if ($this->model->isLoggedIn($this->getUserClient())) {
         return $this->doLogoutForm();
     } else {
         return $this->doLoginForm();
     }
 }
 public function index()
 {
     if (LoginModel::isLoggedIn()) {
         Redirect::toPath('account');
     } else {
         $this->View->render('index');
     }
 }
 public function registration()
 {
     if (LoginModel::isLoggedIn()) {
         Redirect::toPath('account');
     } else {
         $data = array('redirect' => Request::get_get('redirect') != NULL ? Request::get_get('redirect') : NULL);
         $this->View->render('login/register', $data);
     }
 }
 public function LaunchApplication()
 {
     $uDAL = new userDAL();
     $dtv = new DateTimeView();
     $layv = new LayoutView();
     $lm = new LoginModel($uDAL);
     if (isset($_GET["register"])) {
         $rv = new RegisterView($rm);
         $rm = new RegisterModel($uDAL);
         $rc = new RegisterControl($rm, $rv);
         $rc->tryRegisterUser();
         //Runs the tryRegisteruser from registercontroller.
         $layv->render($lm->isloggedin(), $rv, $dtv);
     } else {
         $logv = new LoginView($lm);
         $lc = new LoginController($logv, $lm);
         $lc->init();
         $layv->render($lm->isLoggedIn(), $logv, $dtv);
         //Renders the HTML-layout.
     }
 }
<?php

/**
 * Solution for assignment 2
 * @author Daniel Toll
 */
require_once "Settings.php";
require_once "controller/LoginController.php";
require_once "view/DateTimeView.php";
require_once "view/LayoutView.php";
require_once "view/RegistrationView.php";
if (Settings::DISPLAY_ERRORS) {
    error_reporting(-1);
    ini_set('display_errors', 'ON');
}
//session must be started before LoginModel is created
session_start();
//Dependency injection
$m = new LoginModel();
$v = new LoginView($m);
$r = new RegistrationView();
$c = new LoginController($m, $v, $r);
//Controller must be run first since state is changed
$c->doControl();
//Generate output
$dtv = new DateTimeView();
$lv = new LayoutView();
$lv->render($m->isLoggedIn($v->getUserClient()), $v, $dtv, $r);
Beispiel #6
0
require_once 'model/Database.php';
require_once 'view/LoginView.php';
require_once 'view/DateTimeView.php';
require_once 'view/LayoutView.php';
require_once 'view/RegisterView.php';
require_once 'controller/LoginController.php';
require_once 'controller/RegisterController.php';
require_once 'controller/MainController.php';
//MAKE SURE ERRORS ARE SHOWN... MIGHT WANT TO TURN THIS OFF ON A PUBLIC SERVER
error_reporting(E_ALL);
ini_set('display_errors', 'On');
//Create models
$db = new Database();
$dal = new UserDAL($db);
$loginModel = new LoginModel($dal);
$registerModel = new RegisterModel($dal);
//CREATE OBJECTS OF THE VIEWS
$loginView = new LoginView($loginModel);
$registerView = new RegisterView($registerModel);
$dateTimeView = new DateTimeView();
$layoutView = new LayoutView();
//Create controllers
$loginController = new LoginController($loginView, $loginModel);
$registerController = new RegisterController($registerView, $loginView, $registerModel);
$mainController = new MainController($registerController, $loginController);
$mainController->listen();
if ($mainController->renderRegView()) {
    $layoutView->render(false, $registerView, $dateTimeView);
} else {
    $layoutView->render($loginModel->isLoggedIn(), $loginView, $dateTimeView);
}
Beispiel #7
0
$layoutView = new LayoutView();
//Create controllers
$loginController = new LoginController($loginView, $loginModel);
$registerController = new RegisterController($registerView, $loginView, $registerModel);
$searchController = new SearchController($searchView, $userProfileView, $searchModel);
$userProfileController = new UserProfileController($userProfileView);
$settingsController = new SettingsController($settingsView, $settingsModel);
$mainController = new MainController($registerController, $loginController, $searchController, $userProfileController, $settingsController, $layoutView, $settingsView);
$mainController->listen();
// What view to render within LayoutView
if ($mainController->renderRegView()) {
    $layoutView->render(false, $registerView);
} else {
    if ($mainController->renderSearchView()) {
        if ($searchModel->foundMatch()) {
            $layoutView->render($loginModel->isLoggedIn(), $userProfileView);
        } else {
            $layoutView->render($loginModel->isLoggedIn(), $searchView);
        }
    } else {
        if ($mainController->renderSettingsView()) {
            $layoutView->render($loginModel->isLoggedIn(), $settingsView);
        } else {
            if ($mainController->renderMyProfile()) {
                $layoutView->render($loginModel->isLoggedIn(), $userProfileView);
            } else {
                if ($loginModel->isLoggedIn()) {
                    $userProfileView->setUser(null);
                    $layoutView->render($loginModel->isLoggedIn(), $userProfileView);
                } else {
                    $layoutView->render($loginModel->isLoggedIn(), $loginView);
Beispiel #8
0
 /**
  * Follows a route and produces a web page from it.
  */
 public function route()
 {
     $view = null;
     $exception = null;
     /* construct template engine */
     $smarty = new Smarty();
     $smarty->caching = true;
     $smarty->cache_lifetime = 120;
     $smarty->setTemplateDir(__DIR__ . '/layouts');
     $smarty->setCompileDir(__DIR__ . '/../../smarty/compiled_templates');
     $smarty->setCacheDir(__DIR__ . '/../../smarty/cache');
     switch ($this->path) {
         case 'index':
             $view = new IndexView($smarty);
             break;
         case 'statuses':
             if (!$this->isLoggedIn()) {
                 $exception = new Exception('You must be <a href="?action=login">logged in<a> to view the circuit board status list.');
                 break;
             }
             $view = new StatusesView($smarty);
             $model = new StatusesModel($view);
             $controller = new StatusesController($model);
             try {
                 $controller->fetchStatuses();
             } catch (Exception $e) {
                 $exception = $e;
             }
             break;
         case 'updates':
             if (!$this->isLoggedIn() || $_SESSION['rank'] != 'ADMIN') {
                 $exception = new Exception('You must be <a href="?action=login">logged in<a> to an administrator\'s account to poll the service for updates.');
                 break;
             }
             $view = new UpdatesView($smarty);
             $model = new UpdatesModel($view);
             $controller = new UpdatesController($model);
             try {
                 $controller->fetchUpdates();
             } catch (Exception $e) {
                 $exception = $e;
             }
             break;
         case 'register':
             $view = new RegisterView($smarty);
             $model = new RegisterModel($view);
             $controller = new RegisterController($model);
             try {
                 $controller->checkValidRegistration();
                 $username = $model->getUsername();
                 if ($model->isRegistered()) {
                     $view = new RegisteredView($smarty);
                     $model = new RegisteredModel($view);
                     $model->setUsername($username);
                 }
             } catch (Exception $e) {
                 $exception = $e;
             }
             break;
         case 'login':
             $view = new LoginView($smarty);
             $model = new LoginModel($view);
             $controller = new LoginController($model);
             try {
                 $controller->checkValidLogin();
                 if ($model->isLoggedIn()) {
                     // successful login
                     $view = new LoggedInView($smarty);
                     $model = new LoggedInModel($view);
                     $model->setUsername($_SESSION['username']);
                 }
             } catch (Exception $e) {
                 $exception = $e;
             }
             break;
         case 'logout':
             $view = new LogoutView($smarty);
             $model = new LogoutModel($view, $this->isLoggedIn());
             $controller = new LogoutController($model);
             try {
                 $controller->logout();
             } catch (Exception $e) {
                 $exception = $e;
             }
             break;
         case 'debug':
             if (!$this->isLoggedIn() || $_SESSION['rank'] != 'ADMIN') {
                 $exception = new Exception('You must be <a href="?action=login">logged in<a> to an administrator\'s account view the debug page.');
                 break;
             }
             $view = new DebugView($smarty);
             break;
             /* any unhandled action return them to the welcome screen */
         /* any unhandled action return them to the welcome screen */
         default:
             $this->path = 'index';
             $view = new IndexView($smarty);
             break;
     }
     if ($exception !== null) {
         $view = new ErrorView($smarty);
         $model = new ErrorModel($view);
         $model->setMessage($exception->getMessage());
     }
     if (!DEBUG_MODE) {
         /* optimize the output by removing whitespace */
         $smarty->loadFilter("output", "trimwhitespace");
     }
     /* apply view specific information to the template engine */
     $view->applyTemplate($this->isLoggedIn());
     /* display generated template */
     $smarty->display($view->getId() . '.tpl');
 }
Beispiel #9
0
<?php

session_start();
require_once 'view/LoginView.php';
require_once 'view/DateTimeView.php';
require_once 'view/LayoutView.php';
require_once 'controller/LoginController.php';
require_once 'model/LoginModel.php';
// show php errors
error_reporting(E_ALL);
ini_set('display_errors', 'On');
// creates instances of classes
$loginModel = new LoginModel();
$loginView = new LoginView($loginModel);
$dateTimeView = new DateTimeView();
$layoutView = new LayoutView();
$loginController = new LoginController($loginView, $loginModel);
$loginController->doLogin();
$isLoggedIn = $loginModel->isLoggedIn();
$layoutView->render($isLoggedIn, $loginView, $dateTimeView);