/** * */ 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); }
/** * 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)); }