/** * */ public function display($cachable = false, $urlparams = false) { if ($_POST) { $params = JRequest::getVar('params'); $user = JXFactory::getUser(); $mainframe = JFactory::getApplication(); $emailChange = false; if ($user->email != $params['email']) { $emailChange = true; $oldEmail = $user->email; } // Only process this if there is an email change if ($emailChange) { $dummy = new JXUser(); $loadUser = $dummy->loadUserByEmail($params['email']); // Email is being used by another user; if ($loadUser === true && $dummy->id != $user->id) { $mainframe->redirect(JRoute::_('index.php?option=com_profile&view=edit'), JText::_('COM_PROFILE_ACTION_EMAIL_USED'), 'error'); return false; } else { // update invitation in case there are invitations from the previous email JModel::addIncludePath(JPATH_ROOT . DS . 'components' . DS . 'com_account' . DS . 'models'); $usersInvite = JModel::getInstance('usersInvite', 'AccountModel'); $usersInvite->updateFromEmail($oldEmail, $params['email'], $user); } } $params['password'] = JRequest::getVar('password', '', 'post', 'string', JREQUEST_ALLOWRAW); $params['password2'] = JRequest::getVar('confirm_password', '', 'post', 'string', JREQUEST_ALLOWRAW); // do a password safety check if (JString::strlen($params['password']) || JString::strlen($params['password2'])) { // so that "0" can be used as password e.g. if ($params['password'] != $params['password2']) { $mainframe->redirect(JRoute::_('index.php?option=com_profile&view=edit'), JText::_('COM_REGISTER_ERRMSG_PASSWORD_MISMATCH'), 'error'); return false; } } $user->set('name', $params['name']); $user->set('email', $params['email']); $user->setParam('language', $params['language']); $user->setParam('about_me', $params['about_me']); $user->setParam('timezone', $params['timezone']); $user->setParam('style', $params['style']); $user->bind($params); if ($user->save()) { $percentageFilled = $user->getCalculateCompletion(); $user->setGettingStartedCompletion(JXUser::GSTARTED_COMPLETE_PROFILE, $percentageFilled); // Reload the user session $user->reloadSession(); /* Redirect to clear the previous user values */ $mainframe->redirect(JRoute::_('index.php?option=com_profile&view=edit'), JText::_('COM_PROFILE_ACTION_SAVE_PROFILE_SUCCESS')); } else { $mainframe->redirect(JRoute::_('index.php?option=com_profile&view=edit'), JText::_('COM_PROFILE_ACTION_SAVE_PROFILE_FAILED'), 'error'); } } parent::display(null); }
public static function getUser($id = null) { static $instances = array(); if (empty($instances[$id])) { $user = JFactory::getUser($id); $jxuser = new JXUser(); $jxuser->init($user); // Reload params from db, just for myself if (is_null($id)) { jimport('joomla.html.parameter'); $db = JFactory::getDbo(); // For current user, always reload params from db $query = "SELECT params FROM #__users WHERE " . $db->nameQuote('id') . " = " . $db->Quote($user->id); $db->setQuery($query); $params = $db->loadResult(); $jxuser->setParameters(new JParameter($params)); } $instances[$id] = $jxuser; } return $instances[$id]; }
/** * To check if the event is already a passed event * @param JDate $endDate the end of event to compare to * @return Boolean true on passed event */ public function isEventPassed($endDate) { $userTime = JXUser::getUserTime(); $now = new JDate($userTime); $dateDiff = JXDate::timeDifference($endDate->toUnix(), $now->toUnix()); $eventIsDue = !empty($dateDiff['days']) && $dateDiff['days'] < 0 ? false : true; return $eventIsDue; }
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(); }
public function ajaxResendInvitation() { // Only admin can use this function to invite guests $jxConfig = new JXConfig(); $my = JXFactory::getUser(); $accessHelper = new AccountAccessHelper(); if (!$my->authorise('stream.setting.edit', $accessHelper)) { echo '{"error":"1","info":""'; exit; } $invitation = JRequest::getVar('invitation_id', 0); $returnData = array(); //if ($email !== false) if ($invitation) { $usersInvite = JTable::getInstance('usersInvite', 'AccountTable'); $usersInvite->load(array('id' => $invitation)); if ($usersInvite->id) { $emailToInvite = $usersInvite->invite_email; $dummy = new JXUser(); $loadUser = $dummy->loadUserByEmail($usersInvite->from_email); if (!$loadUser) { // Delete invitations which invitor email cannot be found from registered users $dummy = JXFactory::getUser(); $usersInvite->delete(); } $result = $this->processInvitation($dummy, $emailToInvite); $now = new JDate(); if ($result['flag'] == self::SENT_FLAG) { $usersInvite->load(array('from_email' => $dummy->email, 'invite_email' => $emailToInvite)); $returnData["info"] = JXDate::formatDate($now->format('Y-m-d h:i:s')); $returnData["html"] = $usersInvite->getRowHtml(); } elseif ($result['flag'] == self::ALREADY_REGISTERED_FLAG) { $returnData["msg"] = JText::sprintf('COM_ACCOUNT_MSG_INVITATION_EMAIL_ALREADY_REGISTERED', $result['email']); } $returnData["error"] = '0'; } else { $returnData["error"] = '1'; } } else { $returnData["error"] = '1'; } echo json_encode($returnData); exit; }
public function allowChangeDomain() { jimport('joomla.user.xuser'); $arrUsers = JXUser::getRegisteredUsers(); return count($arrUsers) >= self::MAX_DOMAIN_CHANGE_USER_COUNT ? false : true; }