Server IP : 195.201.23.43 / Your IP : 3.147.59.186 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/kdecoratie/public_html/administrator/components/com_akeeba/Model/ |
Upload File : |
<?php /** * @package akeebabackup * @copyright Copyright (c)2006-2019 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Akeeba\Backup\Admin\Model; // Protect from unauthorized access defined('_JEXEC') or die(); use Akeeba\Engine\Archiver\Directftp; use Akeeba\Engine\Archiver\Directftpcurl; use Akeeba\Engine\Archiver\Directsftp; use Akeeba\Engine\Archiver\Directsftpcurl; use Akeeba\Engine\Factory; use Akeeba\Engine\Platform; use Akeeba\Engine\Util\Transfer\FtpCurl; use Akeeba\Engine\Util\Transfer\SftpCurl; use FOF30\Model\Model; use JText; use JUri; use RuntimeException; class Configuration extends Model { /** * Save the engine configuration * * @return void */ public function saveEngineConfig() { $data = $this->getState('engineconfig', array()); // Forbid stupidly selecting the site's root as the output or temporary directory if (array_key_exists('akeeba.basic.output_directory', $data)) { $folder = $data['akeeba.basic.output_directory']; $folder = Factory::getFilesystemTools()->translateStockDirs($folder, true, true); $check = Factory::getFilesystemTools()->translateStockDirs('[SITEROOT]', true, true); if ($check == $folder) { $data['akeeba.basic.output_directory'] = '[DEFAULT_OUTPUT]'; } } // Unprotect the configuration and merge it $config = Factory::getConfiguration(); $protectedKeys = $config->getProtectedKeys(); $config->resetProtectedKeys(); $config->mergeArray($data, false, false); $config->setProtectedKeys($protectedKeys); // Save configuration Platform::getInstance()->save_configuration(); } /** * Test the FTP connection. * * @return void */ public function testFTP() { $config = array( 'host' => $this->getState('host'), 'port' => $this->getState('port'), 'user' => $this->getState('user'), 'pass' => $this->getState('pass'), 'initdir' => $this->getState('initdir'), 'usessl' => $this->getState('usessl'), 'passive' => $this->getState('passive'), ); // Check for bad settings if (substr($config['host'], 0, 6) == 'ftp://') { throw new RuntimeException(JText::_('COM_AKEEBA_CONFIG_FTPTEST_BADPREFIX'), 500); } // Special case for cURL transport if ($this->getState('isCurl')) { $this->testFtpCurl(); return; } // Perform the FTP connection test $test = new Directftp(); $test->initialize('', $config); $errorMessage = $test->getError(); if (!empty($errorMessage) && !$test->connect_ok) { throw new RuntimeException($errorMessage, 500); } } /** * Test the connection to a remote FTP server using cURL transport * * @throws RuntimeException */ private function testFtpCurl() { $options = array( 'host' => $this->getState('host'), 'port' => $this->getState('port'), 'username' => $this->getState('user'), 'password' => $this->getState('pass'), 'directory' => $this->getState('initdir'), 'usessl' => $this->getState('usessl'), 'passive' => $this->getState('passive'), 'passive_fix' => $this->getState('passive_mode_workaround'), ); $sftpTransfer = new FtpCurl($options); $sftpTransfer->connect(); } /** * Test the SFTP connection. * * @return void */ public function testSFTP() { $config = array( 'host' => $this->getState('host'), 'port' => $this->getState('port'), 'user' => $this->getState('user'), 'pass' => $this->getState('pass'), 'privkey' => $this->getState('privkey'), 'pubkey' => $this->getState('pubkey'), 'initdir' => $this->getState('initdir'), ); // Check for bad settings if (substr($config['host'], 0, 7) == 'sftp://') { throw new RuntimeException(JText::_('COM_AKEEBA_CONFIG_SFTPTEST_BADPREFIX'), 500); } // Special case for cURL transport if ($this->getState('isCurl')) { $this->testSftpCurl(); return; } // Perform the FTP connection test $test = new Directsftp(); $test->initialize('', $config); $errorMessages = $test->getWarnings(); $errorMessage = array_shift($errorMessages); if (!empty($errorMessage) && !$test->connect_ok) { throw new RuntimeException($errorMessage[0], 500); } } /** * Test the connection to a remote SFTP server using cURL transport * * @throws RuntimeException */ private function testSftpCurl() { $options = array( 'host' => $this->getState('host'), 'port' => $this->getState('port'), 'username' => $this->getState('user'), 'password' => $this->getState('pass'), 'directory' => $this->getState('initdir'), 'privateKey' => $this->getState('privkey'), 'publicKey' => $this->getState('pubkey') ); $this->sftpTransfer = new SftpCurl($options); $this->sftpTransfer->connect(); } /** * Opens an OAuth window for the selected post-processing engine * * @return void */ public function dpeOuthOpen() { $engine = $this->getState('engine'); $params = $this->getState('params', array()); // Get a callback URI for OAuth 2 $params['callbackURI'] = JUri::base() . '/index.php?option=com_akeeba&view=Configuration&task=dpecustomapiraw&engine=' . $engine; // Get the Input object $params['input'] = $this->input->getData(); // Get the engine $engineObject = Factory::getPostprocEngine($engine); if ($engineObject === false) { return; } $engineObject->oauthOpen($params); } /** * Runs a custom API call for the selected post-processing engine * * @return mixed */ public function dpeCustomAPICall() { $engine = $this->getState('engine'); $method = $this->getState('method'); $params = $this->getState('params', array()); // Get the Input object $params['input'] = $this->input->getData(); $engineObject = Factory::getPostprocEngine($engine); if ($engineObject === false) { return false; } return $engineObject->customAPICall($method, $params); } }Private