function plgSystemImproved_Ajax_Login(&$subject, $config) { parent::__construct($subject, $config); $GLOBALS['username=email'] = $this->params->get('generate', 1) < 1; if (isset($_REQUEST['ialCheck'])) { $check = JRequest::getString('ialCheck'); $json = array('error' => '', 'msg' => ''); switch ($check) { case 'ialLogin': $json['field'] = 'password'; if (JSession::checkToken()) { $user = JRequest::getVar(isset($_REQUEST['username']) ? 'username' : 'email', ''); $password = JRequest::getString('password', '', 'method', JREQUEST_ALLOWRAW); if (!empty($password)) { $result = isset($_REQUEST['username']) ? OUserHelper::getUser($user) : OUserHelper::getUserByEmail($user); if ($result) { $match = 0; if (method_exists('JUserHelper', 'verifyPassword')) { $match = JUserHelper::verifyPassword($password, $result->password, $result->id); } elseif (substr($result->password, 0, 4) == '$2y$') { $password60 = substr($result->password, 0, 60); if (JCrypt::hasStrongPasswordSupport()) { $match = password_verify($password, $password60); } } else { $parts = explode(':', $result->password); $crypt = $parts[0]; $salt = @$parts[1]; $cryptmode = substr($result->password, 0, 8) == '{SHA256}' ? 'sha256' : 'md5-hex'; $testcrypt = JUserHelper::getCryptedPassword($password, $salt, $cryptmode, false); $match = $crypt == $testcrypt || $result->password == $testcrypt; } if ($match) { $json['username'] = $result->username; } else { $json['error'] = 'JGLOBAL_AUTH_INVALID_PASS'; } } else { $json['error'] = 'JGLOBAL_AUTH_NO_USER'; } } else { $json['error'] = 'JGLOBAL_AUTH_EMPTY_PASS_NOT_ALLOWED'; } } else { $json['error'] = 'JINVALID_TOKEN'; } $json['msg'] = JText::_($json['error']); die(json_encode($json)); case 'data[register][username]': case 'jform[username]': case 'username': $username = JRequest::getString('value'); if (OUserHelper::getId($username)) { $json['error'] = 'COM_USERS_REGISTER_USERNAME_MESSAGE'; } $json['msg'] = JText::_($json['error']); die(json_encode($json)); case 'data[register][email]': case 'jform[email1]': case 'email': $email = JRequest::getString('value'); if (OUserHelper::getIdByEmail($email)) { $json['error'] = 'COM_USERS_REGISTER_EMAIL1_MESSAGE'; } $json['msg'] = JText::_($json['error']); die(json_encode($json)); case 'ialRegister': // com_users if ($jf = JRequest::getVar('jform', null, 'array')) { if (!JSession::checkToken()) { $json['error'] = 'JINVALID_TOKEN'; $json['msg'] = JText::_($json['error']); die(json_encode($json)); } if (!isset($jf['email1'])) { $json['error'] = 'JGLOBAL_EMAIL'; $json['msg'] = JText::_('JGLOBAL_EMAIL') . ' ' . JText::_('JREQUIRED'); die(json_encode($json)); } if (!isset($jf['password1'])) { $json['error'] = 'JGLOBAL_PASSWORD'; $json['msg'] = JText::_('JGLOBAL_PASSWORD') . ' ' . JText::_('JREQUIRED'); die(json_encode($json)); } if (!isset($jf['username'])) { if ($this->params->get('generate', 1) > 0) { list($jf['username']) = explode('@', $jf['email1']); if (OUserHelper::getId($jf['username'])) { $jf['username'] .= OUserHelper::getNewId(); } } else { $jf['username'] = $jf['email1']; } } if (!isset($jf['name'])) { $jf['name'] = $jf['username']; } if (!isset($jf['email2'])) { $jf['email2'] = $jf['email1']; } if (!isset($jf['password2'])) { $jf['password2'] = $jf['password1']; } JRequest::setVar('jform', $jf); JFactory::getApplication()->input->post->set('jform', $jf); } $_SESSION['ialRegister'] = $jf['username']; break; } } }
function getUserNames() { $email = $this->getEmail(); if ($GLOBALS['username=email'] && $email) { return array($email); } $username = array(); if (isset($this->username)) { $username[] = trim($this->username); } if (isset($this->screen_name)) { $username[] = trim($this->screen_name); } if (isset($this->firstName) && isset($this->lastName)) { $username[] = trim($this->firstName . $this->lastName); } if ($email) { preg_match('/^[^@]+/', $email, $match); if (OUserHelper::getId($match[0])) { $match[0] .= OUserHelper::getNewId(); } $username[] = $match[0]; } return $username; }