/** * Method to log in a user. * * @since 1.6 */ public function login() { //JSession::checkToken('post') or jexit(JText::_('JInvalid_Token')); $app = JFactory::getApplication(); $jinput = JFactory::getApplication()->input; $session = JFactory::getSession(); $linkRedirect = $session->get('redirectAfterUserSave'); // Populate the data array: $data = array(); $data['return'] = base64_decode($jinput->post->get('return', '', 'BASE64')); $config = JComponentHelper::getParams('com_bt_socialconnect'); if (!$config->get('remove_user')) { $data['username'] = $jinput->post->get('username', '', 'USERNAME'); } else { $data['username'] = Bt_SocialconnectHelper::getUserName($jinput->post->get('email', '', 'EMAIL')); } $data['password'] = $jinput->post->get('password', '', JREQUEST_ALLOWRAW); // Set the return URL if empty. if (empty($data['return'])) { $data['return'] = 'index.php?option=com_bt_socialconnect&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'] = $jinput->get('remember', false, 'BOOL'); $options['return'] = $data['return']; // Get the log in credentials. $credentials = array(); $credentials['username'] = $data['username']; $credentials['password'] = $data['password']; $user = $session->get('btPrepareUser'); // Perform the log in. if (true === $app->login($credentials, $options)) { if ($user) { $return = self::checkUser($data, $user); } // Success $app->setUserState('users.login.form.data', array()); $user = JFactory::getUser(); if ($linkRedirect && $user->id) { $this->setRedirect(JRoute::_($linkRedirect . '&userid=' . $user->id, false)); $session->clear('redirectAfterUserSave'); } else { $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); if ($user) { $app->redirect(JRoute::_('index.php?option=com_bt_socialconnect&view=registration&return=' . $jinput->post->get('return'), false)); } else { $app->redirect(JRoute::_('index.php?option=com_bt_socialconnect&view=login&return=' . $jinput->post->get('return'), false)); } } }
public static function ajax() { $mainframe = JFactory::getApplication('site'); //JRequest::checkToken() or jexit(JText::_('JINVALID_TOKEN')); $isRegister = JRequest::getVar('bttask'); /** * check task is login to do */ if ($isRegister == 'login') { if ($return = JRequest::getVar('return', '', 'method', 'base64')) { $return = base64_decode($return); if (!JURI::isInternal($return)) { $return = ''; } } $options = array(); $options['remember'] = JRequest::getBool('remember', false); $options['return'] = $return; $credentials = array(); $config = JComponentHelper::getParams('com_bt_socialconnect'); if (!$config->get('remove_user')) { $credentials['username'] = JRequest::getVar('username', '', 'method', 'username'); } else { $credentials['username'] = Bt_SocialconnectHelper::getUserName(JRequest::getVar('email', '', 'EMAIL')); } $credentials['password'] = JRequest::getString('passwd', '', 'post', JREQUEST_ALLOWRAW); //prevent aec redirect $db = JFactory::getDbo(); $query = $db->getQuery(true); $query->select("block"); $query->from("#__users"); $query->where('username='******'username']))); $db->setQuery($query); if ($db->loadResult()) { $error = 'ERROR: Your account has not been activated. Check your email for the activation link!'; } else { //preform the login action $error = $mainframe->login($credentials, $options); } self::ajaxResponse($error); } }