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(); }
echo JRoute::_('index.php?option=com_register&view=signup'); ?> "> <?php echo JText::_('MOD_LOGIN_REGISTER'); ?> </a> </div> <?php } ?> </div> <?php jimport('joomla.utilities.integration.activedirectory'); $activeDirectory = new JActiveDirectory(); if ($activeDirectory->isEnabled()) { ?> <div> <input type="button" id="active_directory_connect" onclick="window.open('<?php echo JRoute::_('index.php?option=com_register&view=connect&type=ad'); ?> ', 'Active Directory Connect', 'width=500,height=500,toolbar=0,menubar=0,resizable=0');" value="AD Connect"/> </div> <?php } ?> <?php if ($params->get('posttext')) { ?>