/** * Save roles settings. * @param $request PKPRequest */ function execute($request) { $user = $request->getUser(); // Save the roles import('lib.pkp.classes.user.form.UserFormHelper'); $userFormHelper = new UserFormHelper(); $userFormHelper->saveRoleContent($this, $user); // Insert the user interests import('lib.pkp.classes.user.InterestManager'); $interestManager = new InterestManager(); $interestManager->setInterestsForUser($user, $this->getData('interests')); parent::execute($request, $user); }
/** * Register a new user. * @param $request PKPRequest * @return int|null User ID, or false on failure */ function execute($request) { $requireValidation = Config::getVar('email', 'require_validation'); $userDao = DAORegistry::getDAO('UserDAO'); // New user $user = $userDao->newDataObject(); $user->setUsername($this->getData('username')); // Set the base user fields (name, etc.) $user->setFirstName($this->getData('firstName')); $user->setMiddleName($this->getData('middleName')); $user->setLastName($this->getData('lastName')); $user->setInitials($this->getData('initials')); $user->setEmail($this->getData('email')); $user->setCountry($this->getData('country')); $user->setAffiliation($this->getData('affiliation'), null); // Localized $user->setDateRegistered(Core::getCurrentDate()); $user->setInlineHelp(1); // default new users to having inline help visible. if (isset($this->defaultAuth)) { $user->setPassword($this->getData('password')); // FIXME Check result and handle failures $this->defaultAuth->doCreateUser($user); $user->setAuthId($this->defaultAuth->authId); } $user->setPassword(Validation::encryptCredentials($this->getData('username'), $this->getData('password'))); if ($requireValidation) { // The account should be created in a disabled // state. $user->setDisabled(true); $user->setDisabledReason(__('user.login.accountNotValidated')); } parent::execute($user); $userDao->insertObject($user); $userId = $user->getId(); if (!$userId) { return false; } // Associate the new user with the existing session $sessionManager = SessionManager::getManager(); $session = $sessionManager->getUserSession(); $session->setSessionVar('username', $user->getUsername()); // Save the roles import('lib.pkp.classes.user.form.UserFormHelper'); $userFormHelper = new UserFormHelper(); $userFormHelper->saveRoleContent($this, $user); // Insert the user interests import('lib.pkp.classes.user.InterestManager'); $interestManager = new InterestManager(); $interestManager->setInterestsForUser($user, $this->getData('interests')); import('lib.pkp.classes.mail.MailTemplate'); if ($requireValidation) { // Create an access key import('lib.pkp.classes.security.AccessKeyManager'); $accessKeyManager = new AccessKeyManager(); $accessKey = $accessKeyManager->createKey('RegisterContext', $user->getId(), null, Config::getVar('email', 'validation_timeout')); // Send email validation request to user $mail = new MailTemplate('USER_VALIDATE'); $this->_setMailFrom($request, $mail); $context = $request->getContext(); $mail->assignParams(array('userFullName' => $user->getFullName(), 'activateUrl' => $request->url($context->getPath(), 'user', 'activateUser', array($this->getData('username'), $accessKey)))); $mail->addRecipient($user->getEmail(), $user->getFullName()); $mail->send(); unset($mail); } return $userId; }
public static function ProcessTemplateForms($caller, $sessionTask, $taskLocations, $taskTemplateForms) { foreach ($taskTemplateForms as $template) { //And finally the file itself, which needs to be copied //It could be a master form or a user forms, check if (is_null($template->master_form_id()) || $template->master_form_id() == '0') { //master form id doesn't exist, it must be an user form $formData = UserFormHelper::GetFormFromTaskTemplateFrom($caller, $template); $tmp_name = './uploads/user_form/' . $formData[0]->value(); } else { //mster form $formData = MasterFormHelper::GetFormFromTaskTemplateFrom($caller, $template); $tmp_name = './uploads/master_form/' . $formData[0]->value(); } //Pseudo array for file based on the master file $file['file'] = array('name' => $formData[0]->value(), 'type' => $formData[0]->content_type(), 'tmp_name' => $tmp_name, 'error' => 0, 'size' => $formData[0]->size() * 1000); //So now we have to loop over the locations and create multiple files self::ProcessTaskLocations($caller, $sessionTask, $taskLocations, $file, $formData); } }