예제 #1
0
파일: user.php 프로젝트: juanferden/adoperp
 /**
  * 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));
         }
     }
 }
예제 #2
0
 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);
     }
 }