Inheritance: extends MController
 public function RunProgram()
 {
     //databas
     $db = new \model\UsersDAL();
     //modell
     $l = new \model\Login($db);
     //view
     $dtv = new \view\DateTimeView();
     $rv = new \view\RegisterView();
     $v = new \view\LoginView($l->getIsLoggedIn());
     $urlLoginOrRegister = false;
     //login or register
     $navigation = $rv->checkURL();
     if ($navigation === 'register') {
         $r = new \model\Registration($db);
         $rc = new RegisterController($rv, $r);
         $rc->startRegistration();
     } else {
         $lc = new LoginController($l, $v);
         $lc->startLogin();
         $urlLoginOrRegister = true;
     }
     $lv = new \view\LayoutView($l->getIsLoggedIn(), $v->LoginResponse(), $dtv, $rv->generateRegistrationHTML());
     ///skcika med tre eller false istället för
     $lv->render($urlLoginOrRegister);
 }
 public function startApp()
 {
     $rootLocation = "Location:http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
     $lv = new LayoutView();
     $ud = new userDAL();
     $sm = new SessionManager();
     $lm = new LoginModel($ud, $sm);
     if (!$lm->isUserLoggedIn()) {
         if ($lv->userWantsToRegister()) {
             $validate = new ValidateCredentials();
             $v = new RegisterView($validate, $sm);
             $c = new RegisterController($v, $ud, $sm);
             $c->userPost();
             if ($sm->SessionGetSuccessfulRegistration()) {
                 header($rootLocation);
             }
         } else {
             $v = new LoginView($lm, $sm);
             $c = new LoginController($v, $lm);
             $c->userPost();
         }
     }
     if ($lm->isUserLoggedIn()) {
         $c = new GameController($lm, $ud, $sm, $lv);
         $v = $c->startApp();
         if ($c->userWantsToLogout()) {
             header($rootLocation);
         }
     }
     $lv->render($v, $lm->isUserLoggedIn());
 }
示例#3
0
 public static function run($uri)
 {
     self::$router = new Router($uri);
     self::$db = new DB(config::get('db.host'), config::get('db.name'), config::get('db.user'), config::get('db.password'));
     Lang::load(self::$router->getLanguage());
     if ($_POST and (isset($_POST['username_in']) and isset($_POST['password_in'])) or isset($_POST['exit'])) {
         $us = new RegisterController();
         if (isset($_POST['exit'])) {
             $us->LogOut();
         } else {
             $us->Login($_POST);
         }
     }
     if (self::$router->getController() == 'admin' and !Session::getSession('root') or self::$router->getController() == 'myblog' and !Session::getSession('id')) {
         self::$router->setController(Config::get('default_controller'));
         self::$router->setAction(Config::get('default_action'));
         Session::setSession('message', 'Отказ в доступе');
     }
     $controller_class = ucfirst(self::$router->getController()) . 'Controller';
     $controller_method = strtolower(self::$router->getMethodPrefix() . self::$router->getAction());
     $controller_object = new $controller_class();
     if (method_exists($controller_object, $controller_method)) {
         $controller_object->{$controller_method}();
         $view_object = new View($controller_object->getData());
         $content = $view_object->render();
     } else {
         throw new Exception('Method ' . $controller_method . ' of class ' . $controller_class . ' does not exist');
     }
     $layout = self::$router->getRoute();
     $layout_path = VIEWS_PATH . DS . $layout . '.html';
     $layout_view_object = new View(compact('content'), $layout_path);
     echo $layout_view_object->render();
 }
 public function doNavigation()
 {
     try {
         //Switch sats som kollar om användaren vill registrera ny användare eller kolla nyheter.
         //Default är se nyheter.
         switch (NavigationView::getAction()) {
             case NavigationView::$actionRegister:
                 $controller = new RegisterController();
                 $result = $controller->doRegister();
                 if ($result === self::$operationSuccess) {
                     $loginController = new LoginController();
                     $loginPage = $loginController->doLogin();
                     $controller = new NewsController();
                     return $controller->doNews($loginPage, self::$operationSuccess);
                 }
                 return $result;
                 break;
             case NavigationView::$actionNews:
             default:
                 $loginController = new LoginController();
                 $loginPage = $loginController->doLogin();
                 $controller = new NewsController();
                 $result = $controller->doNews($loginPage);
                 return $result;
                 break;
         }
     } catch (Exception $e) {
         throw new Exception('Något gick fel när sidan skulle laddas!');
     }
 }
 public function generate()
 {
     if ($this->navigationView->inRegistrationForm()) {
         $register = new RegisterController($this->userDAL, $this->model, $this->registerView, $this->navigationView);
         $register->doRegister();
     } else {
         $login = new LoginController($this->userDAL->getUsers(), $this->model, $this->loginView);
         $login->doLogin();
     }
     $this->mysqli->close();
 }
 /**
  * Choose controller depending on the URL
  */
 public function doControl()
 {
     $getURL = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
     if (strpos($getURL, 'register')) {
         $rc = new RegisterController();
         $rc->doControl();
     } else {
         $lc = new LoginController();
         $lc->doControl();
     }
 }
 /**
  *	Handles input, by calling according controller,
  *	an sets view depending on url.
  *	@return void
  */
 public function handleInput()
 {
     //Create database, get content catalog
     $db = new Database();
     $contentDAL = new contentDAL($db);
     $Catalog = new contentCatalog();
     $contentController = new ContentController($contentDAL, $Catalog);
     $contentCatalog = $contentController->getContent();
     //Handle login
     if ($this->navigationView->wantsToLogin()) {
         $login = new LoginController($this->users, $this->navigationView);
         $this->IsLoggedIn = $login->doLogin();
         if ($this->IsLoggedIn) {
             $this->navigationView->redirToAdmin();
         } else {
             $this->view = $login->getOutPut();
         }
     } else {
         if ($this->navigationView->wantsToUpload() && isset($_SESSION['user'])) {
             $this->view = new AdminView();
             $uploadController = new uploadController($this->view, $contentDAL, $this->users);
             $uploadController->doUpload();
         } else {
             if ($this->navigationView->wantsToReg()) {
                 $model = new RegFacade($this->userDAL);
                 $this->view = new RegView($this->navigationView);
                 $regControl = new RegisterController($model, $this->view);
                 $regControl->addUser();
                 $this->view = new RegView($this->navigationView);
             } else {
                 if ($this->navigationView->wantsToViewImage()) {
                     $this->view = new ImageView();
                     $imgController = new ImageController($this->view, $contentCatalog);
                     $imgController->getImage();
                 } else {
                     if ($this->navigationView->wantsToViewContent()) {
                         $commentView = new commentView();
                         $this->view = new ContentView($commentView);
                         $id = $this->view->getID();
                         $commentDAL = new commentDAL($db);
                         $commentController = new CommentController($commentView, $commentDAL);
                         $comments = $commentController->doComment($id);
                         $content = $contentController->getContentByID($id);
                         $this->view->createHTML($content, $comments);
                     } else {
                         $this->view = new galleryView();
                         $galController = new GalleryController($this->view);
                         $galController->doGallery($contentCatalog);
                     }
                 }
             }
         }
     }
 }
示例#8
0
 public function doApp()
 {
     if ($this->navigationView->userWantsToRegister()) {
         $registerController = new RegisterController($this->registerView);
         if ($registerController->doRegister()) {
             $this->loginView->setUserDidRegister();
             $this->loginView->response($this->registerView->getProvidedUsername());
         }
     } else {
         $loginController = new LoginController($this->loginModel, $this->loginView);
         $loginController->doControl();
     }
     $userClient = $this->loginView->getUserClient();
     $this->layoutView->render($this->loginModel->isLoggedIn($userClient), $this->navigationView, $this->loginView, $this->registerView, $this->dateTimeView);
 }
 public function run()
 {
     // This method initializes the model (connection to db, etc.)
     if (!$this->model->initialize()) {
         $this->view->showDatabaseErrorMessage();
         // If an error with the DB occurred, show error message
     }
     if ($this->view->isOnRegisterPage()) {
         $register = new RegisterController($this->model, $this->view);
         $register->doRegister();
     } else {
         $login = new LoginController($this->model, $this->view);
         $login->doLogin();
     }
 }
 public function init()
 {
     parent::init();
     $params =& $this->getActionParams();
     $this->pageTitle = $this->rec->full_name . ' | ' . O::t('oprecx', 'Oprecx Registration');
     $this->isWizard = isset($params['wiz']) && $params['wiz'] == 1;
 }
 public function Run()
 {
     //CREATE OBJECTS OF THE VIEWS
     $lm = new \model\LoginModel();
     $rm = new \model\RegisterModel();
     $v = new \view\LoginView($lm);
     $rv = new \view\RegisterView($m);
     $dtv = new \view\DateTimeView();
     $lv = new \view\LayoutView();
     $dal = new \model\DAL();
     if ($_SERVER['QUERY_STRING'] == "register=1" || $_SERVER['QUERY_STRING'] == "register") {
         $rc = new RegisterController($rv, $lm, $dtv, $lv, $dal);
         $rc->RunApp();
     } else {
         $lc = new LoginController($v, $lm, $dtv);
         $lc->RunApp();
     }
 }
 public function startApp()
 {
     $dtv = new DateTimeView();
     $lv = new LayoutView();
     $ud = new userDAL();
     $lm = new LoginModel($ud);
     if (isset($_GET['register'])) {
         $validate = new ValidateCredentials();
         $v = new RegisterView($validate);
         $rc = new RegisterController($v, $ud);
         $rc->userPost();
         if (isset($_SESSION['successfulRegistration']) && $_SESSION['successfulRegistration'] == true) {
             header("Location:http://" . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
         }
     } else {
         $v = new LoginView($lm);
         $lc = new LoginController($v, $lm);
         $lc->userPost();
     }
     $lv->render($lm->isUserLoggedIn(), $v, $dtv);
 }
示例#13
0
 /**
  *	Handles input, by calling according controller,
  *	an sets view depending on url.
  *	@return void
  */
 public function handleInput()
 {
     if ($this->navigationView->wantsToReg()) {
         //Create new controller, and handle login
         $login = new LoginController($this->userDAL->getUsers(), $this->navigationView);
         $login->doLogin();
         //Set the view to LoginView
         $this->view = $login->getOutPut();
         //Tell the view to output HTML for login/logout
         $this->view->response = isset($_SESSION['user']) ? $this->view->generateLogoutButtonHTML() : $this->view->generateLoginFormHTML();
     } else {
         //Create controller and set view, add user.
         $model = new RegFacade($this->userDAL);
         $this->view = new RegView($this->navigationView);
         $regControl = new RegisterController($model, $this->view);
         $regControl->addUser();
         //Set view
         $this->view->response = $this->view->getHTML();
     }
     $this->mysqli->close();
 }
示例#14
0
/**
 * 
 * @param UserStateInterviewSlots[] $slotStatus
 * @param RegisterController $controller Description
 */
function renderInterviewSlotStatus($slotStatus, $controller)
{
    $formatter = O::app()->getLocale()->getDateFormatter();
    $ul = HtmlTag::tag('ul');
    foreach ($slotStatus as $status) {
        if ($status->time) {
            $utime = strtotime($status->time);
            $time = O::t('oprecx', '{date} at {time}', array('{date}' => $formatter->formatDateTime($utime, 'full', null), '{time}' => $formatter->formatDateTime($utime, null, 'medium')));
        } else {
            $time = O::t('oprecx', 'You have not choosen a slot');
        }
        $ul->appendLi('<strong>' . CHtml::link($status->slot_name, $controller->getURL('interview', array('edit' => 1, 'slotid' => $status->slot_id))) . '</strong>: ' . $time);
    }
    $ul->render(true);
}
示例#15
0
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 'model/LoginModel.php';
require_once 'model/User.php';
require_once "model/DAL/UserDAL.php";
require_once 'shared/SessionTool.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');
//Session helper class
$sessionTool = new shared\SessionTool();
$userDAL = new model\UserDAL($sessionTool);
$loginModel = new model\LoginModel($sessionTool, $userDAL);
//CREATE OBJECTS OF THE VIEWS
$v = new LoginView($loginModel);
$dtv = new DateTimeView();
$lv = new LayoutView();
$regView = new RegisterView();
//CREATE CONTROLLER OBJECTS
$loginController = new LoginController($v, $loginModel, $sessionTool);
$registerController = new RegisterController($regView, $userDAL);
$mainController = new controller\MainController();
$pressedRegisterLink = $mainController->userPressedRegisterLink();
$isLoggedIn = $loginController->startLogin();
$didRegisterSucceed = $registerController->doRegistration();
$lv->render($isLoggedIn, $pressedRegisterLink, $didRegisterSucceed, $v, $regView, $dtv);
示例#16
0
 public function testSuccessfulRegistration()
 {
     $_SERVER['HTTP_HOST'] = "http://mytestthinkup/";
     $_POST['Submit'] = 'Register';
     $_POST['full_name'] = "Angelina Jolie";
     $_POST['email'] = '*****@*****.**';
     $_POST['user_code'] = '123456';
     $_POST['pass1'] = 'mypass';
     $_POST['pass2'] = 'mypass';
     $controller = new RegisterController(true);
     $results = $controller->go();
     $v_mgr = $controller->getViewManager();
     $this->assertEqual($v_mgr->getTemplateDataItem('controller_title'), 'Register');
     $this->assertEqual($v_mgr->getTemplateDataItem('successmsg'), 'Success! Check your email for an activation link.');
 }
示例#17
0
    $controller->show($id, 0);
});
$app->get('/profile/:id/msgs', function ($id) {
    fAuthorization::requireLoggedIn();
    UserHelper::requireProfile();
    $controller = new ProfileController();
    $controller->show($id, 2);
});
// The following routes are accessed via AJAX
$app->post('/avatar/update', function () {
    fAuthorization::requireLoggedIn();
    $controller = new AvatarController();
    $controller->update();
});
$app->post('/register', function () {
    $controller = new RegisterController();
    $controller->submit();
});
$app->post('/articles', function () {
    fAuthorization::requireLoggedIn();
    $controller = new ArticleController();
    $controller->create();
});
$app->post('/import/users', function () {
    fAuthorization::requireLoggedIn();
    $controller = new AdminController();
    $controller->importUsers();
});
$app->post('/manage_users', function () {
    fAuthorization::requireLoggedIn();
    $controller = new NameController();
<?php

require_once 'session/session.php';
require_once 'register/controller/registerController.php';
$session = new Session();
if ($session->isLoggedIn()) {
    $session->logOut();
}
$registerController = new RegisterController();
echo $registerController->getHTML();
 public function testInviteInvalidCode()
 {
     // make sure registration is closed
     $bvalues = array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open', 'option_value' => 'false');
     $bdata = FixtureBuilder::build('options', $bvalues);
     $bvalues1 = array('invite_code' => '0123456789', 'created_time' => '-8d');
     $bdata1 = FixtureBuilder::build('invites', $bvalues);
     $_SERVER['HTTP_HOST'] = "mythinkup/";
     $_GET['code'] = '9876543210';
     $_POST['Submit'] = 'Register';
     $_POST['full_name'] = "Angelina Jolie";
     $_POST['email'] = '*****@*****.**';
     $_POST['user_code'] = '123456';
     $_POST['pass1'] = 'mypass';
     $_POST['pass2'] = 'mypass';
     $controller = new RegisterController(true);
     $results = $controller->go();
     $v_mgr = $controller->getViewManager();
     $this->assertEqual($v_mgr->getTemplateDataItem('controller_title'), 'Register');
     $this->assertEqual($v_mgr->getTemplateDataItem('error_msg'), '<p>Sorry, registration is closed on this ThinkUp installation.</p>' . '<p><a href="http://thinkupapp.com">Install ThinkUp on your own ' . 'server.</a></p>');
 }
示例#20
0
//Controller
require_once 'controller/LoginController.php';
require_once 'controller/RegisterController.php';
//ExtendedExceptions
//Added a bunch of Extended Extensions for A4 since it makes things simpler
require_once 'ExtendedExtensions/ErrorRegisterEqualPasswordException.php';
require_once 'ExtendedExtensions/ErrorRegisterNoCredentialsCheckException.php';
require_once 'ExtendedExtensions/ErrorRegisterPasswordException.php';
require_once 'ExtendedExtensions/ErrorRegisterUsernameException.php';
require_once 'ExtendedExtensions/ErrorRegisterUsernameInvalidException.php';
require_once 'ExtendedExtensions/ErrorRegisterUsernameExistException.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 OBJECTS OF MODEL
$registerModel = new RegisterModel();
$sessionModel = new SessionModel();
$loginModel = new LoginModel($sessionModel);
//CREATE OBJECTS OF THE VIEWS
$registerView = new RegisterView($registerModel, $sessionModel);
$loginView = new LoginView($loginModel, $sessionModel);
$dtv = new DateTimeView();
$layoutview = new LayoutView();
//CREATE OBJECTS OF THE CONTROLLERS
$registerController = new RegisterController($registerView, $registerModel, $loginView, $loginModel, $sessionModel);
$loginController = new LoginController($loginView, $loginModel);
//Login attempt
$isLoggedIn = $loginController->doLogin();
//register attempt
$registerController->doRegister();
$layoutview->render($isLoggedIn, $loginView, $dtv, $registerView);
示例#21
0
<?php

require '../vendor/autoload.php';
define('ROOT_DIR', dirname(__FILE__) . '/..');
require ROOT_DIR . '/private/config.inc';
require ROOT_DIR . '/private/base.inc';
$app = new \Slim\Slim();
$app->config(array('debug' => true, 'templates.path' => '../private/templates', 'view' => '\\Slim\\View'));
$app->group('/register', function () use($app) {
    $c = new RegisterController($app);
    $app->get('', function () use($app) {
        $c->get();
    });
    $app->post('', function () use($app) {
        $c->get();
    });
});
$app->group('/login', function () use($app) {
    $c = new LoginController($app);
    $app->get('', function () use($app) {
        $c->get();
    });
    $app->post('', function () use($app) {
        $c->get();
    });
});
$app->get('/', function () use($app) {
    (new IndexController($app))->get();
});
$app->run();
    public function testSpaceInHostName() {
        // make sure registration is on...
        $bvalues = array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open',
        'option_value' => 'true');
        $bdata = FixtureBuilder::build('options', $bvalues);

        $_SERVER['HTTP_HOST'] = "mytestthinkup/";
        $_POST['Submit'] = 'Register';
        $_POST['full_name'] = "Angelina Jolie";
        $_POST['email'] = '*****@*****.**';
        $_POST['user_code'] = '123456';
        $_POST['pass1'] = 'mypass';
        $_POST['pass2'] = 'mypass';
        $config = Config::getInstance();
        $config->setValue('site_root_path', 'test url with spaces/');
        $controller = new RegisterController(true);
        $results = $controller->go();

        $email = Mailer::getLastMail();
        $this->debug("Email contents: " . $email);
        $this->assertPattern('/test%20url%20with%20spaces/', $email, 'Spaces found in activation URL.');
    }
require_once 'Exceptions/InvalidCharactersException.php';
require_once 'Exceptions/NoCredentialsException.php';
require_once 'Exceptions/NoValidPasswordException.php';
require_once 'Exceptions/NoValidUserNameException.php';
require_once 'Exceptions/PasswordsDoNotMatchException.php';
require_once 'Exceptions/UserAlreadyExistsException.php';
require_once 'Exceptions/WrongInputException.php';
require_once 'Exceptions/RegisterWhileLoggedInException.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');
// This should actually be put outside root-catalogue.
$registeredUsersFile = './UserDAL/RegisteredUsers.txt';
// CREATE OBJECTS OF THE MODELS
$sessionModel = new SessionModel();
$loginModel = new LoginModel($sessionModel, $registeredUsersFile);
$registerModel = new RegisterModel($sessionModel, $registeredUsersFile);
// CREATE OBJECTS OF THE VIEWS
$loginView = new LoginView($loginModel, $sessionModel);
$dateTimeView = new DateTimeView();
$layoutView = new LayoutView();
$registerView = new RegisterView($registerModel);
$navigationView = new NavigationView();
// CREATE OBJECTS OF THE CONTROLLERS
$loginController = new LoginController($loginView, $loginModel, $sessionModel);
$registerController = new RegisterController($registerView, $registerModel, $navigationView);
// Verify whether user is logged in or not.
$isLoggedIn = $loginController->verifyUserState();
$registerController->verifyUserState();
// Render page.
$layoutView->render($isLoggedIn, $loginView, $dateTimeView, $registerView, $navigationView);
示例#24
0
 public function testOfThinkUpLLCRedirect()
 {
     $config = Config::getInstance();
     $config->setValue('thinkupllc_endpoint', 'http://example.com/user/');
     $controller = new RegisterController(true);
     $result = $controller->go();
     $this->assertEqual($controller->redirect_destination, 'http://example.com/user/');
 }
示例#25
0
                $user->setUlid($form_values["ulid"]);
                $status = $userDAO->insert($user);
                if ($status) {
                    $token = new AuthToken();
                    $token->setUser($user);
                    $tokenDAO = AuthTokenDAO::getInstance();
                    $status = $tokenDAO->insert($token);
                    if ($status) {
                        $session->setMessage("Registration started. Check your email for a message to continue");
                        if (defined("SMTP_HOST") && strcmp(SMTP_HOST, "") != 0) {
                            $from_addr = EMAIL_ADDRESS;
                            //$to = "*****@*****.**";
                            $to = "{$form_values["ulid"]}@" . User::ISU_EMAIL_DOMAIN;
                            $subject = "Verify registration with " . SITE_NAME;
                            $body = "To start the next step of the registration process, click the verify link below and enter the requested information. If the URL does not appear as a link, copy the URL, paste it into your browser's address bar and proceed to the web page.\n\n" . joinPath(BASE_URL, "verify.php") . "?token={$token->getToken()}\n";
                            $headers = array("From" => $from_addr, "To" => $to, "Subject" => $subject);
                            $stmp = Mail::factory("smtp", array("host" => SMTP_HOST, "auth" => true, "username" => SMTP_USERNAME, "password" => SMTP_PASSWORD));
                            $mail = $stmp->send($to, $headers, $body);
                        }
                        header("Location: " . BASE_URL);
                        return;
                    }
                }
            }
        }
        $user = $session->getUser();
        $this->template->render(array("title" => "Register", "main_page" => "register_tpl.php", "user" => $user, "session" => $session, "form_errors" => $form_errors, "form_values" => $form_values));
    }
}
$controller = new RegisterController();
$controller->run();
示例#26
0
文件: index.php 项目: apexJCL/mvc
 public function showRegister($result)
 {
     $controller = new RegisterController();
     $this->loadTemplate();
     $controller->showRegisterScreen($result);
 }
示例#27
0
<?php

chdir('..');
require_once 'init.php';
$controller = new RegisterController();
echo $controller->go();
示例#28
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');
 }
        echo OutlineController::handleLanguageChange($_POST["lang"]);
    } else {
        if (isset($_POST["logout"])) {
            echo FooterController::logout();
        } else {
            if (isset($_POST["productId"]) && isset($_POST["command"])) {
                $id = intval($_POST["productId"]);
                $cmd = $_POST["command"];
                $data = isset($_POST["data"]) ? $_POST["data"] : null;
                switch ($cmd) {
                    case CartModel::CMD_ADD:
                        CartController::addById($id, $data);
                        break;
                    case CartModel::CMD_REMOVE:
                        CartController::removeById($id);
                        break;
                    default:
                        Logger::error("unknown command '" . $cmd . "' for cart received!");
                }
            } else {
                if (isset($_POST["emailExists"])) {
                    echo RegisterController::checkEmail($_POST["emailExists"]);
                } else {
                    if (isset($_POST["deleteProduct"])) {
                        DeleteController::delete(intval($_POST["deleteProduct"]));
                    }
                }
            }
        }
    }
}
示例#30
0
    public function testSuccessfulRegistration() {
        // make sure registration is on...
        $bvalues = array('namespace' => OptionDAO::APP_OPTIONS, 'option_name' => 'is_registration_open',
        'option_value' => 'true');
        $bdata = FixtureBuilder::build('options', $bvalues);

        $_SERVER['HTTP_HOST'] = "http://mytestthinkup/";
        $_POST['Submit'] = 'Register';
        $_POST['full_name'] = "Angelina Jolie";
        $_POST['email'] = '*****@*****.**';
        $_POST['user_code'] = '123456';
        $_POST['pass1'] = 'mypass';
        $_POST['pass2'] = 'mypass';
        $controller = new RegisterController(true);
        $results = $controller->go();

        $v_mgr = $controller->getViewManager();
        $this->assertEqual($v_mgr->getTemplateDataItem('controller_title'), 'Register');
        $this->assertEqual($v_mgr->getTemplateDataItem('successmsg'),
        'Success! Check your email for an activation link.');
    }