/** * Create new account * * @param PFUser $user * * @return PFUser */ function createAccount($user) { $dao = $this->getDao(); $user_id = $dao->create($user->getUserName(), $user->getEmail(), $user->getPassword(), $user->getRealName(), $user->getRegisterPurpose(), $user->getStatus(), $user->getShell(), $user->getUnixStatus(), $user->getUnixUid(), $user->getUnixBox(), $user->getLdapId(), $_SERVER['REQUEST_TIME'], $user->getConfirmHash(), $user->getMailSiteUpdates(), $user->getMailVA(), $user->getStickyLogin(), $user->getAuthorizedKeys(), $user->getNewMail(), $user->getTimeZone(), $user->getTheme(), $user->getLanguageID(), $user->getExpiryDate(), $_SERVER['REQUEST_TIME']); if (!$user_id) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('include_exit', 'error')); return 0; } else { $user->setId($user_id); $this->assignNextUnixUid($user); $em = $this->_getEventManager(); $em->processEvent(Event::USER_MANAGER_CREATE_ACCOUNT, array('user' => $user)); // Create the first layout for the user and add some initial widgets $lm = $this->_getWidgetLayoutManager(); $lm->createDefaultLayoutForUser($user_id); switch ($user->getStatus()) { case PFUser::STATUS_PENDING: if (ForgeConfig::get('sys_user_approval')) { $this->pending_user_notifier->notifyAdministrator($user); } break; case PFUser::STATUS_ACTIVE: case PFUser::STATUS_RESTRICTED: $em->processEvent('project_admin_activate_user', array('user_id' => $user_id)); break; } return $user; } }
private function create(PFUser $user) { if ($user->getPassword() != '') { $this->ldap->add($this->getUserDN($user), $this->getLDAPInfo($user)); $this->updateUserLdapId($user); } else { $this->logger->debug('No password for user ' . $user->getUnixName() . ' ' . $user->getId() . ' skip LDAP account creation'); } }