Exemple #1
0
 /**
  * @param bool $internal
  *
  * @return JUser|mixed|object
  */
 private function getUser($internal = FALSE)
 {
     switch ($this->_dataObj->searchfield) {
         case 'username':
             $sql = "SELECT * FROM #__users WHERE username = '******'";
             $sql = sprintf($sql, $this->_dataObj->searchvalue);
             $this->_db->setQuery($sql);
             $row = $this->_db->loadObject();
             break;
         case 'id':
             $row = new JUser();
             $row->load((int) $this->_dataObj->searchvalue);
             break;
     }
     if ($row->id) {
         // NEVER let the users password leave the remote site
         $row->password = '******';
     }
     if ($internal === TRUE) {
         return $row;
     }
     bfEncrypt::reply('success', array('user' => $row));
 }
Exemple #2
0
 /**
  * If not enabled, then enable the Akeeba API Frontend using a secure secret word
  */
 private function enableAkeebaFrontendBackup()
 {
     // load mini-Joomla
     require 'bfInitJoomla.php';
     $this->_db = JFactory::getDBO();
     // Get some Joomla version
     $VERSION = new JVersion();
     switch ($VERSION->RELEASE) {
         case '1.5':
             $params = JComponentHelper::getParams('com_akeeba');
             if (!count($params->toArray())) {
                 // send back the totals
                 bfEncrypt::reply('success', array('akeeba_installed' => FALSE));
             }
             $frontend_enable = $params->get('frontend_enable');
             $frontend_secret_word = $params->get('frontend_secret_word');
             if ($frontend_enable != 1) {
                 $params->set('frontend_enable', 1);
                 $saveChanges = TRUE;
             }
             $params->set('frontend_secret_word', str_replace('&', '', JUtility::getHash(JUtility::getToken(TRUE))));
             $saveChanges = TRUE;
             $secretWord = $params->get('frontend_secret_word');
             if (TRUE == $saveChanges) {
                 $params = $params->toString();
                 $sql = 'UPDATE #__components SET params = \'%s\' WHERE `OPTION` = "com_akeeba"';
                 $sql = sprintf($sql, addslashes($params));
                 $this->_db->setQuery($sql);
                 $this->_db->query();
             }
             break;
         default:
         case '2.5':
             $this->_db->setQuery('SELECT extension_id, params FROM #__extensions WHERE NAME="akeeba" AND element = "com_akeeba"');
             $data = $this->_db->loadObject();
             if (!$data) {
                 // send back the totals
                 bfEncrypt::reply('success', array('akeeba_installed' => FALSE));
             }
             $params = json_decode($data->params);
             if ($params->frontend_enable != 1) {
                 $params->frontend_enable = 1;
                 $saveChanges = TRUE;
             }
             if (!$params->frontend_secret_word || preg_match('/\\&/', $params->frontend_secret_word)) {
                 $params->frontend_secret_word = md5(JApplication::getHash('myjoomla'));
                 $saveChanges = TRUE;
             }
             $secretWord = $params->frontend_secret_word;
             if (TRUE == $saveChanges) {
                 $params = json_encode($params);
                 $sql = 'UPDATE #__extensions SET params = \'%s\' WHERE extension_id = %s';
                 $sql = sprintf($sql, addslashes($params), $data->extension_id);
                 $this->_db->setQuery($sql);
                 $this->_db->query();
             }
             break;
     }
     // send back the totals
     bfEncrypt::reply('success', array('akeeba_installed' => TRUE, 'secret' => $secretWord));
 }