/** * Validate user registration information and register new user. * @param $args array * @param $request PKPRequest */ function registerUser($args, $request) { $this->validate($request); $this->setupTemplate($request); import('lib.pkp.classes.user.form.RegistrationForm'); $regForm = new RegistrationForm($request->getSite()); $regForm->readInputData(); if (!$regForm->validate()) { return new JSONMessage(true, $regForm->fetch($request)); } $regForm->execute($request); if (Config::getVar('email', 'require_validation')) { // Send them home; they need to deal with the // registration email. return $request->redirectUrlJson($request->url(null, 'index')); } $reason = null; if (Config::getVar('security', 'implicit_auth')) { Validation::login('', '', $reason); } else { Validation::login($regForm->getData('username'), $regForm->getData('password'), $reason); } if ($reason !== null) { $this->setupTemplate($request); $templateMgr = TemplateManager::getManager($request); $templateMgr->assign('pageTitle', 'user.login'); $templateMgr->assign('errorMsg', $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason'); $templateMgr->assign('errorParams', array('reason' => $reason)); $templateMgr->assign('backLink', $request->url(null, 'login')); $templateMgr->assign('backLinkLabel', 'user.login'); return $templateMgr->fetchJson('frontend/pages/error.tpl'); } if ($source = $request->getUserVar('source')) { return $request->redirectUrlJson($source); } return $request->redirectUrlJson($request->getRouter()->getHomeUrl($request)); }