/**
* Validate user registration information and register new user.
*/
function registerUser()
{
RegistrationHandler::validate();
import('user.form.RegistrationForm');
$regForm =& new RegistrationForm();
$regForm->readInputData();
if ($regForm->validate()) {
$regForm->execute();
if (Config::getVar('email', 'require_validation')) {
// Send them home; they need to deal with the
// registration email.
Request::redirect(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) {
parent::setupTemplate(true);
$templateMgr =& TemplateManager::getManager();
$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, null, 'login'));
$templateMgr->assign('backLinkLabel', 'user.login');
return $templateMgr->display('common/error.tpl');
}
if ($source = Request::getUserVar('source')) {
Request::redirectUrl($source);
} else {
Request::redirect(null, 'login');
}
} else {
parent::setupTemplate(true);
$regForm->display();
}
}