File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_akeeba/engine/Postproc
Viewing File: /home/astoriaah/www/old15/administrator/components/com_akeeba/engine/Postproc/Sugarsync.php
<?php /** * Akeeba Engine * The modular PHP5 site backup engine * * @copyright Copyright (c)2006-2015 Nicholas K. Dionysopoulos * @license GNU GPL version 3 or, at your option, any later version * @package akeebaengine * */ namespace Akeeba\Engine\Postproc; // Protection against direct access defined('AKEEBAENGINE') or die(); use Akeeba\Engine\Factory; use Akeeba\Engine\Postproc\Connector\Sugarsync\Exception\Base as SugarsyncException; use Akeeba\Engine\Postproc\Connector\Sugarsync as ConnectorSugarsync; /** * SugarSync post-processing class for Akeeba Backup */ class Sugarsync extends Base { public function __construct() { $this->can_delete = true; $this->can_download_to_file = true; $this->can_download_to_browser = false; } public function processPart($absolute_filename, $upload_as = null) { $settings = $this->_getEngineSettings(); if ($settings === false) { return false; } extract($settings); // Calculate relative remote filename $filename = empty($upload_as) ? basename($absolute_filename) : $upload_as; if (empty($directory) || ($directory == '/')) { $directory = ''; } // Store the absolute remote path in the class property $this->remote_path = $directory . '/' . $filename; // Connect and send try { $config = array( 'access' => base64_decode('TnpZek1UUTFNVEk1TWpnMk1UWTVORGt3Tnc='), 'private' => base64_decode('T0RnNE4yVTJaakZtTURKa05HSTFaRGxtTkdVNU1qZzFZVE5oWW1VMVltVQ=='), 'email' => $email, 'password' => $password ); $ss = new ConnectorSugarsync($config); $ss->uploadFile($directory, $filename, $absolute_filename); } catch (SugarsyncException $e) { $this->setWarning($e->getMessage()); return false; } return true; } /** * Implements object deletion */ public function delete($path) { $settings = $this->_getEngineSettings(); if ($settings === false) { return false; } extract($settings); // Connect and delete try { $config = array( 'access' => base64_decode('TnpZek1UUTFNVEk1TWpnMk1UWTVORGt3Tnc='), 'private' => base64_decode('T0RnNE4yVTJaakZtTURKa05HSTFaRGxtTkdVNU1qZzFZVE5oWW1VMVltVQ=='), 'email' => $email, 'password' => $password ); $ss = new ConnectorSugarsync($config); $ss->deleteFile($path); } catch (SugarsyncException $e) { $this->setWarning($e->getMessage()); return false; } return true; } public function downloadToFile($remotePath, $localFile, $fromOffset = null, $length = null) { if (!is_null($fromOffset) || !is_null($length)) { return -1; } $settings = $this->_getEngineSettings(); if ($settings === false) { return false; } extract($settings); try { $config = array( 'access' => base64_decode('TnpZek1UUTFNVEk1TWpnMk1UWTVORGt3Tnc='), 'private' => base64_decode('T0RnNE4yVTJaakZtTURKa05HSTFaRGxtTkdVNU1qZzFZVE5oWW1VMVltVQ=='), 'email' => $email, 'password' => $password ); $ss = new ConnectorSugarsync($config); $dummy = null; $ss->downloadFile($remotePath, $dummy, $localFile); } catch (SugarsyncException $e) { $this->setWarning($e->getMessage()); return false; } return true; } protected function _getEngineSettings() { // Retrieve engine configuration data $config = Factory::getConfiguration(); $email = trim($config->get('engine.postproc.sugarsync.email', '')); $password = trim($config->get('engine.postproc.sugarsync.password', '')); $directory = $config->get('volatile.postproc.directory', null); if (empty($directory)) { $directory = $config->get('engine.postproc.sugarsync.directory', 0); } // Sanity checks if (empty($email)) { $this->setWarning('You have not set up your SugarSync email address'); return false; } if (empty($password)) { $this->setWarning('You have not set up your SugarSync password'); return false; } if(!function_exists('curl_init')) { $this->setWarning('cURL is not enabled, please enable it in order to post-process your archives'); return false; } // Fix the directory name, if required if (!empty($directory)) { $directory = trim($directory); $directory = ltrim(Factory::getFilesystemTools()->TranslateWinPath($directory), '/'); } else { $directory = ''; } // Parse tags $directory = Factory::getFilesystemTools()->replace_archive_name_variables($directory); $config->set('volatile.postproc.directory', $directory); return array( 'email' => $email, 'password' => $password, 'directory' => $directory, ); } }