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 $regForm->display($request);
}
$regForm->execute($request);
// Inform the user of the email validation process. This must be run
// before the disabled account check to ensure new users don't see the
// disabled account message.
if (Config::getVar('email', 'require_validation')) {
$this->setupTemplate($request);
$templateMgr = TemplateManager::getManager($request);
$templateMgr->assign(array('requireValidation' => true, 'pageTitle' => 'user.login.registrationPendingValidation', 'messageTranslated' => __('user.login.accountNotValidated', array('email' => $regForm->getData('email')))));
return $templateMgr->fetch('frontend/pages/message.tpl');
}
$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(array('pageTitle' => 'user.login', 'errorMsg' => $reason == '' ? 'user.login.accountDisabled' : 'user.login.accountDisabledWithReason', 'errorParams' => array('reason' => $reason), 'backLink' => $request->url(null, 'login'), 'backLinkLabel' => 'user.login'));
return $templateMgr->fetch('frontend/pages/error.tpl');
}
if ($source = $request->getUserVar('source')) {
return $request->redirectUrlJson($source);
} else {
$request->redirect(null, 'user', 'registrationComplete');
}
}