예제 #1
0
 /**
  *
  */
 private function setFolderPermissions()
 {
     $fixed = 0;
     $errors = 0;
     $this->_db->setQuery('SELECT id, folderwithpath from bf_folders WHERE folderinfo = "777"');
     $folders = $this->_db->loadObjectList();
     foreach ($folders as $folder) {
         if (@chmod(JPATH_BASE . $folder->folderwithpath, 0755)) {
             $fixed++;
             $this->_db->setQuery('UPDATE bf_folders SET folderinfo = "755" WHERE id = "' . (int) $folder->id . '" AND folderinfo = "777"');
             $this->_db->query();
         } else {
             $errors++;
         }
     }
     $this->_db->setQuery('SELECT count(*) FROM bf_folders WHERE folderinfo LIKE "%777%"');
     $folders_777 = $this->_db->LoadResult();
     $res = new stdClass();
     $res->errors = $errors;
     $res->fixed = $fixed;
     $res->leftover = $folders_777;
     bfEncrypt::reply('success', $res);
 }
예제 #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));
 }