16 import(
'lib.pkp.controllers.grid.users.reviewer.form.ReviewerForm');
25 parent::__construct($submission, $reviewRound);
26 $this->
setTemplate(
'controllers/grid/users/reviewer/form/createReviewerForm.tpl');
34 $this->
addCheck(
new FormValidatorLocale($this,
'givenName',
'required',
'user.profile.form.givenNameRequired', $site->getPrimaryLocale()));
35 $this->
addCheck(
new FormValidatorCustom($this,
'familyName',
'optional',
'user.profile.form.givenNameRequired.locale',
function($familyName) use ($form) {
36 $givenNames = $form->getData(
'givenName');
37 foreach ($familyName as $locale => $value) {
38 if (!empty($value) && empty($givenNames[$locale])) {
48 $this->
addCheck(
new FormValidator($this,
'userGroupId',
'required',
'user.profile.form.usergroupRequired'));
55 function fetch($request, $template =
null, $display =
false) {
58 $site = $request->getSite();
60 $templateMgr->assign(
'sitePrimaryLocale', $site->getPrimaryLocale());
61 return parent::fetch($request, $template, $display);
69 parent::readInputData();
88 $user = $userDao->newDataObject();
90 $user->setGivenName($this->
getData(
'givenName'),
null);
91 $user->setFamilyName($this->
getData(
'familyName'),
null);
92 $user->setEmail($this->
getData(
'email'));
93 $user->setAffiliation($this->
getData(
'affiliation'),
null);
96 $auth = $authDao->getDefaultPlugin();
97 $user->setAuthId($auth?$auth->getAuthId():0);
98 $user->setInlineHelp(1);
100 $user->setUsername($this->
getData(
'username'));
104 $user->setPassword($password);
106 $auth->doCreateUser($user);
107 $user->setAuthId($auth->authId);
112 $user->setMustChangePassword(
true);
115 $reviewerId = $userDao->insertObject($user);
118 $this->
setData(
'reviewerId', $reviewerId);
121 import(
'lib.pkp.classes.user.InterestManager');
123 $interestManager->setInterestsForUser($user, $this->
getData(
'interests'));
127 $userGroupId = (int) $this->
getData(
'userGroupId');
128 $userGroupDao->assignUserToGroup($reviewerId, $userGroupId);
130 if (!$this->
getData(
'skipEmail')) {
132 import(
'lib.pkp.classes.mail.MailTemplate');
134 if ($mail->isEnabled()) {
136 $context = $request->getContext();
137 $mail->setReplyTo($context->getData(
'contactEmail'), $context->getData(
'contactName'));
138 $mail->assignParams(array(
'username' => $this->
getData(
'username'),
'password' => $password,
'userFullName' => $user->getFullName()));
139 $mail->addRecipient($user->getEmail(), $user->getFullName());
140 if (!$mail->send($request)) {
141 import(
'classes.notification.NotificationManager');
143 $notificationMgr->createTrivialNotification($request->getUser()->getId(), NOTIFICATION_TYPE_ERROR, array(
'contents' => __(
'email.compose.error')));
148 return parent::execute(...$functionArgs);