Example #1
0
 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();
 }
Example #2
0
 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');
     }
 }
Example #3
0
 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();
 }