Example #1
0
 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;
         }
     }
 }
Example #2
0
 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;
 }