public function display($cachable = false, $urlparams = false) { // Only admin can use this function to invite guests $mainframe = JFactory::getApplication(); $my = JXFactory::getUser(); if ($_POST) { // Check for request forgeries. JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); $jxConfig = new JXConfig(); $name = JRequest::getVar('name', ''); $email = JRequest::getVar('email', ''); $username = JRequest::getVar('username', ''); $password1 = JRequest::getString('password', ''); $password2 = JRequest::getString('confirm_password', ''); $data = array('name' => $name, 'username' => $username, 'password' => $password1, 'conf_pass' => $password2, 'email' => $email); $model = RegisterFactory::getModel('registration'); if ($model->registerUser($data)) { $mainframe->redirect(JURI::base(), JText::_('COM_REGISTER_MSG_REGISTRATION_SUCCESSFUL')); } else { $mainframe->enqueueMessage($model->getError(), 'error'); } } JRequest::setVar('view', 'register'); parent::display(); }
public function display($cachable = false, $urlparams = false) { // Only admin can use this function to invite guests $jxConfig = new JXConfig(); $mainframe = JFactory::getApplication(); $my = JXFactory::getUser(); $email = JRequest::getVar('email', ''); $token = JRequest::getString('token', ''); $code = JRequest::getString('code', ''); $userInviteTable = JTable::getInstance('usersInvite', 'AccountTable'); $userInviteTable->load(array('invite_email' => $email, 'status' => AccountTableUsersInvite::PENDING, 'token' => $token)); if ($userInviteTable->id) { if ($_POST) { $name = JRequest::getVar('name', ''); $username = JRequest::getVar('username', ''); $password1 = JRequest::getString('password', ''); $password2 = JRequest::getString('confirm_password', ''); $data = array('name' => $name, 'username' => $username, 'password' => $password1, 'conf_pass' => $password2, 'email' => $email, 'group_limited' => $userInviteTable->group_limited); $model = RegisterFactory::getModel('registration'); if ($userid = $model->registerUser($data)) { $userInviteTable->status = AccountTableUsersInvite::REGISTERED; $userInviteTable->store(); // If user is invited to a certain group only, add the user into the group if ($userInviteTable->group_limited) { // Include tables JTable::addIncludePath(JPATH_ROOT . DS . 'components' . DS . 'com_stream' . DS . 'tables'); $groups = explode(',', $userInviteTable->group_limited); $user = JXFactory::getUser($userid); foreach ($groups as $group_id) { $group = $group = JTable::getInstance('Group', 'StreamTable'); $group->load($group_id); // If you join, you'd also follow it $group->members = JXUtility::csvInsert($group->members, $user->id); $group->followers = JXUtility::csvInsert($group->followers, $user->id); $group->store(); // Store user cache $groupList = $user->getParam('groups_member'); $groupList = JXUtility::csvInsert($groupList, $group->id); $user->setParam('groups_member', $groupList); $user->save(); } } $mainframe->redirect(JURI::base(), JText::_('COM_REGISTER_MSG_REGISTRATION_SUCCESSFUL')); } else { $mainframe->enqueueMessage($model->getError(), 'error'); } } parent::display(); } else { $mainframe->redirect(JURI::base(), JText::_('COM_REGISTER_ERRMSG_NO_VALID_INVITATION'), 'error'); } }
public function display($cachable = false, $urlparams = false) { // Only admin can use this function to invite guests $mainframe = JFactory::getApplication(); $my = JXFactory::getUser(); $dummy = new JXUser(); if ($_POST) { // Check for request forgeries. JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); $activeDirectory = new JActiveDirectory(); if ($activeDirectory->connect()) { $username = JRequest::getVar('username', '', 'method', 'username'); $password = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); // select user from database $checkUser = $dummy->loadUserByUsername($username); $addMsg = false; // if user exists, login user if ($checkUser === false) { $displayName = $activeDirectory->getExchangeInfo('displayname'); if (empty($displayName)) { $displayName = $username; $addMsg = true; } $email = $activeDirectory->getExchangeInfo('mail'); if (empty($email)) { $email = $username . $activeDirectory->getDomain(); $addMsg = true; } // register user automatically $data = array('name' => $displayName, 'username' => $username, 'password' => $password, 'conf_pass' => $password, 'email' => $email); $model = RegisterFactory::getModel('registration'); if (!$model->registerUser($data)) { $mainframe->enqueueMessage($model->getError(), 'error'); } $dummy->loadUserByUsername($username); } // Set the user to have the integration parameter; can be used to avoid user from editing password $chgPwd['password'] = $password; $chgPwd['password2'] = $password; $dummy->bind($chgPwd); $dummy->setParam('integration', 'activedirectory'); $dummy->save(); // login user // Get the log in options. $options = array(); $options['remember'] = false; // Get the log in credentials. $credentials = array(); $credentials['username'] = $username; $credentials['password'] = $password; $mainframe->login($credentials, $options); echo '<script type="text/javascript"> '; if ($addMsg) { echo "alert('" . JText::_('COM_ACCOUNT_CONNECT_LABEL_CHANGE_DEFAULT_NAME_EMAIL') . "'); "; echo 'window.opener.location.href="' . JRoute::_('index.php?option=com_profile&view=edit') . '"; window.close();'; } else { echo 'window.opener.location.reload(); window.close();'; } echo '</script>'; exit; } else { $mainframe->redirect(JRoute::_('index.php?option=com_register&view=connect&type=ad'), 'Failed to login Active Directory. Account might not exists. Please contact your server/site administrator!', 'error'); exit; } } JRequest::setVar('view', 'connect'); parent::display(); }