예제 #1
0
 /**
  * Method to log in a user.
  *
  * @since	1.6
  */
 public function login()
 {
     //JSession::checkToken('post') or jexit(JText::_('JINVALID_TOKEN'));
     $app = JFactory::getApplication();
     // Populate the data array:
     $data = array();
     $data['return'] = base64_decode(JRequest::getVar('return', '', 'POST', 'BASE64'));
     $data['return2'] = JRequest::getVar('return2', '', 'POST');
     $data['username'] = JRequest::getVar('username', '', 'method', 'username');
     $data['password'] = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW);
     // Set the return URL if empty.
     if (empty($data['return'])) {
         $data['return'] = 'index.php?option=com_users&view=profile';
     }
     // Set the return URL in the user state to allow modification by plugins
     $app->setUserState('users.login.form.return', $data['return']);
     // Get the log in options.
     $options = array();
     $options['remember'] = JRequest::getBool('remember', false);
     $options['return'] = $data['return'];
     // Get the log in credentials.
     $credentials = array();
     $credentials['username'] = $data['username'];
     $credentials['password'] = $data['password'];
     ideary::setLoginErrorCodeInSession($credentials['username'], $credentials['password']);
     $app->setUserState('users.login.form.errorlogin', true);
     $app->setUserState('users.login.errorlogincount', 0);
     // Perform the log in.
     if (true === $app->login($credentials, $options)) {
         // Success
         $app->setUserState('users.login.form.data', array());
         $app->setUserState('users.login.form.errorlogin', false);
         $app->setUserState('users.login.errorlogincount', 5);
         $app->redirect(JRoute::_($app->getUserState('users.login.form.return'), false));
     } else {
         // Login failed !
         $data['remember'] = (int) $options['remember'];
         $app->setUserState('users.login.form.data', $data);
         //$app->redirect(JRoute::_('index.php?option=com_users&view=login', false));
         $app->redirect(JRoute::_('index.php'));
     }
 }