• Main Page
  • Modules
  • Classes
  • Files
  • File List

pages/user/RegistrationHandler.inc.php

00001 <?php
00002 
00016 import('pages.user.UserHandler');
00017 
00018 class RegistrationHandler extends UserHandler {
00022    function RegistrationHandler() {
00023       parent::UserHandler();
00024    }
00025 
00031    function register($args, &$request) {
00032       $this->validate($request);
00033       $this->setupTemplate(true);
00034 
00035       $press =& $request->getPress();
00036       $site =& $request->getSite();
00037 
00038       if ($press != null) {
00039          import('classes.user.form.RegistrationForm');
00040 
00041          $existingUser = $request->getUserVar('existingUser') ? 1 : 0;
00042 
00043          $regForm = new RegistrationForm($site, $existingUser);
00044 
00045          $regForm->initData();
00046          $regForm->display($request);
00047       } else {
00048          $pressDao =& DAORegistry::getDAO('PressDAO');
00049          $presses =& $pressDao->getEnabledPresses(); //Enabled added
00050 
00051          $templateMgr =& TemplateManager::getManager();
00052          $templateMgr->assign('source', $request->getUserVar('source'));
00053          $templateMgr->assign_by_ref('presses', $presses);
00054          $templateMgr->display('user/registerSite.tpl');
00055       }
00056    }
00057 
00063    function registerUser($args, &$request) {
00064       $this->validate($request);
00065       $this->setupTemplate(true);
00066       import('classes.user.form.RegistrationForm');
00067 
00068       $existingUser = $request->getUserVar('existingUser') ? 1 : 0;
00069       $site =& $request->getSite();
00070 
00071       $regForm = new RegistrationForm($site, $existingUser);
00072       $regForm->readInputData();
00073 
00074       if ($regForm->validate()) {
00075          $regForm->execute($request);
00076          if (Config::getVar('email', 'require_validation')) {
00077             // Send them home; they need to deal with the
00078             // registration email.
00079             $request->redirect(null, 'index');
00080          }
00081 
00082          $reason = null;
00083 
00084          if (Config::getVar('security', 'implicit_auth')) {
00085             Validation::login('', '', $reason);
00086          } else {
00087             Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason);
00088          }
00089 
00090          if ($reason !== null) {
00091             $this->setupTemplate(true);
00092             $templateMgr =& TemplateManager::getManager();
00093             $templateMgr->assign('pageTitle', 'user.login');
00094             $templateMgr->assign('errorMsg', $reason==''?'user.login.accountDisabled':'user.login.accountDisabledWithReason');
00095             $templateMgr->assign('errorParams', array('reason' => $reason));
00096             $templateMgr->assign('backLink', $request->url(null, 'login'));
00097             $templateMgr->assign('backLinkLabel', 'user.login');
00098             return $templateMgr->display('common/error.tpl');
00099          }
00100          if($source = $request->getUserVar('source'))
00101             $request->redirectUrl($source);
00102 
00103          else $request->redirect(null, 'login');
00104 
00105       } else {
00106          $regForm->display($request);
00107       }
00108    }
00109 
00115    function registrationDisabled($args, &$request) {
00116       $this->setupTemplate(true);
00117       $templateMgr =& TemplateManager::getManager();
00118       $templateMgr->assign('pageTitle', 'user.register');
00119       $templateMgr->assign('errorMsg', 'user.register.registrationDisabled');
00120       $templateMgr->assign('backLink', $request->url(null, 'login'));
00121       $templateMgr->assign('backLinkLabel', 'user.login');
00122       $templateMgr->display('common/error.tpl');
00123    }
00124 
00129    function activateUser($args, &$request) {
00130       $username = array_shift($args);
00131       $accessKeyCode = array_shift($args);
00132 
00133       $press =& $request->getPress();
00134       $userDao =& DAORegistry::getDAO('UserDAO');
00135       $user =& $userDao->getByUsername($username);
00136       if (!$user) $request->redirect(null, 'login');
00137 
00138       // Checks user & token
00139       import('lib.pkp.classes.security.AccessKeyManager');
00140       $accessKeyManager = new AccessKeyManager();
00141       $accessKeyHash = AccessKeyManager::generateKeyHash($accessKeyCode);
00142       $accessKey =& $accessKeyManager->validateKey(
00143          'RegisterContext',
00144          $user->getId(),
00145          $accessKeyHash
00146       );
00147 
00148       if ($accessKey != null && $user->getDateValidated() === null) {
00149          // Activate user
00150          $user->setDisabled(false);
00151          $user->setDisabledReason('');
00152          $user->setDateValidated(Core::getCurrentDate());
00153          $userDao->updateObject($user);
00154 
00155          $templateMgr =& TemplateManager::getManager();
00156          $templateMgr->assign('message', 'user.login.activated');
00157          return $templateMgr->display('common/message.tpl');
00158       }
00159       $request->redirect(null, 'login');
00160    }
00161 
00166    function validate(&$request) {
00167       $press = $request->getPress();
00168       if ($press != null) {
00169          $pressSettingsDao =& DAORegistry::getDAO('PressSettingsDAO');
00170          if ($pressSettingsDao->getSetting($press->getId(), 'disableUserReg')) {
00171             // Users cannot register themselves for this press
00172             $this->registrationDisabled();
00173             exit;
00174          }
00175       }
00176    }
00177 
00178 }
00179 
00180 ?>

Generated on Mon Sep 17 2012 13:58:56 for Open Monograph Press by  doxygen 1.7.1