17 import(
'pages.user.UserHandler');
26 parent::initialize($request);
35 function register($args, $request) {
36 if (
Config::getVar(
'security',
'force_login_ssl') && $request->getProtocol() !=
'https') {
38 $request->redirectSSL();
45 $templateMgr->assign(
'pageTitle',
'user.login.registrationComplete');
46 return $templateMgr->display(
'frontend/pages/userRegisterComplete.tpl');
52 import(
'lib.pkp.classes.user.form.RegistrationForm');
56 if (!$request->isPost()) {
58 return $regForm->display($request);
62 $regForm->readInputData();
63 if (!$regForm->validate()) {
64 return $regForm->display($request);
75 $templateMgr->assign(array(
76 'requireValidation' =>
true,
77 'pageTitle' =>
'user.login.registrationPendingValidation',
78 'messageTranslated' => __(
'user.login.accountNotValidated', array(
'email' => $regForm->getData(
'email'))),
80 return $templateMgr->fetch(
'frontend/pages/message.tpl');
87 Validation::login($regForm->getData(
'username'), $regForm->getData(
'password'), $reason);
90 if ($reason !==
null) {
93 $templateMgr->assign(array(
94 'pageTitle' =>
'user.login',
95 'errorMsg' => $reason==
''?
'user.login.accountDisabled':
'user.login.accountDisabledWithReason',
96 'errorParams' => array(
'reason' => $reason),
97 'backLink' => $request->url(
null,
'login'),
98 'backLinkLabel' =>
'user.login',
100 return $templateMgr->fetch(
'frontend/pages/error.tpl');
103 $source = $request->getUserVar(
'source');
104 if (preg_match(
'#^/\w#', $source) === 1) {
105 return $request->redirectUrl($source);
108 $request->redirect(
null,
'user',
'register');
119 $this->
register($args, $request);
128 $username = array_shift($args);
129 $accessKeyCode = array_shift($args);
132 $user = $userDao->getByUsername($username);
133 if (!$user) $request->redirect(
null,
'login');
136 import(
'lib.pkp.classes.security.AccessKeyManager');
139 $accessKey = $accessKeyManager->validateKey(
145 if ($accessKey !=
null && $user->getDateValidated() ===
null) {
147 $user->setDisabled(
false);
148 $user->setDisabledReason(
'');
150 $userDao->updateObject($user);
153 $templateMgr->assign(
'message',
'user.login.activated');
154 return $templateMgr->display(
'frontend/pages/message.tpl');
156 $request->redirect(
null,
'login');
162 function validate($requiredContexts =
null, $request =
null) {
163 $context = $request->getContext();
164 $disableUserReg =
false;
167 $contexts = $contextDao->getAll(
true)->toArray();
168 $contextsForRegistration = array();
169 foreach($contexts as $context) {
170 if (!$context->getData(
'disableUserReg')) {
171 $contextsForRegistration[] = $context;
174 if (empty($contextsForRegistration)) {
175 $disableUserReg =
true;
177 } elseif($context->getData(
'disableUserReg')) {
178 $disableUserReg =
true;
181 if ($disableUserReg) {
184 $templateMgr->assign(array(
185 'pageTitle' =>
'user.register',
186 'errorMsg' =>
'user.register.registrationDisabled',
187 'backLink' => $request->url(
null,
'login'),
188 'backLinkLabel' =>
'user.login',
190 $templateMgr->display(
'frontend/pages/error.tpl');