Ejemplo n.º 1
0
 public function renameDisabled($files)
 {
     foreach ($files as $fileFrom => $fileTo) {
         sugar_mkdir(dirname($fileTo), null, true);
         sugar_rename($fileFrom, $fileTo);
         $this->log('Custom view ' . $fileFrom . ' should be disabled (moved to ' . $fileTo . ')');
     }
 }
Ejemplo n.º 2
0
 public function run()
 {
     if (version_compare($this->from_version, 7, '<')) {
         $path = 'custom/Extension/application/Ext/Include/';
         sugar_mkdir($path . 'Disabled/', null, true);
         foreach ($this->modules as $module) {
             $file = $module . '.php';
             if (file_exists($path . $file)) {
                 sugar_rename($path . $file, $path . "Disabled/" . $file);
                 $this->log("Unsupported module {$module} disabled");
             }
         }
     }
 }
Ejemplo n.º 3
0
function upgrade_aos()
{
    global $sugar_config, $db;
    if (!isset($sugar_config['aos']['version']) || $sugar_config['aos']['version'] < 5.2) {
        $db->query("UPDATE  aos_pdf_templates SET type = 'AOS_Quotes' WHERE type = 'Quotes'");
        $db->query("UPDATE  aos_pdf_templates SET type = 'AOS_Invoices' WHERE type = 'Invoices'");
        require_once 'include/utils/file_utils.php';
        $old_files = array('custom/Extension/modules/Accounts/Ext/Layoutdefs/Account.php', 'custom/Extension/modules/Accounts/Ext/Vardefs/Account.php', 'custom/Extension/modules/Contacts/Ext/Layoutdefs/Contact.php', 'custom/Extension/modules/Contacts/Ext/Vardefs/Contact.php', 'custom/Extension/modules/Opportunities/Ext/Layoutdefs/Opportunity.php', 'custom/Extension/modules/Opportunities/Ext/Vardefs/Opportunity.php', 'custom/Extension/modules/Project/Ext/Layoutdefs/Project.php', 'custom/Extension/modules/Project/Ext/Vardefs/Project.php', 'modules/AOS_Quotes/js/Quote.js');
        foreach ($old_files as $old_file) {
            if (file_exists($old_file)) {
                create_custom_directory('bak_aos/' . $old_file);
                sugar_rename($old_file, 'custom/bak_aos/' . $old_file);
            }
        }
    }
}
Ejemplo n.º 4
0
 private function rollLog($force = false)
 {
     if (!$this->initialized || empty($this->logSize)) {
         return;
     }
     // lets get the number of megs we are allowed to have in the file
     $megs = substr($this->logSize, 0, strlen($this->logSize) - 2);
     //convert it to bytes
     $rollAt = (int) $megs * 1024 * 1024;
     //check if our log file is greater than that or if we are forcing the log to roll
     if ($force || filesize($this->logfile . $this->ext) >= $rollAt) {
         //now lets move the logs starting at the oldest and going to the newest
         for ($i = $this->maxLogs - 2; $i > 0; $i--) {
             if (file_exists($this->logfile . $i . $this->ext)) {
                 $to = $i + 1;
                 $old_name = $this->logfile . $i . $this->ext;
                 $new_name = $this->logfile . $to . $this->ext;
                 //nsingh- Bug 22548  Win systems fail if new file name already exists. The fix below checks for that.
                 //if/else branch is necessary as suggested by someone on php-doc ( see rename function ).
                 sugar_rename($old_name, $new_name);
                 //rename ( $this->logfile . $i . $this->ext, $this->logfile . $to . $this->ext );
             }
         }
         //now lets move the current .log file
         sugar_rename($this->logfile . $this->ext, $this->logfile . '1' . $this->ext);
     }
 }
Ejemplo n.º 5
0
 /**
  * This method add a font to SugarCRM from a font file and a metric file using MakeFont()
  * @param $font_file string
  * @param $metric_file string
  * @param $embedded boolean
  * @param $encoding_table string
  * @param $patch array
  * @param $cid_info string
  * @param $style string
  * @return boolean true on success
  * @see MakeFont() in K_PATH_FONTS/utils
  */
 public function addFont($font_file, $metric_file, $embedded = true, $encoding_table = 'cp1252', $patch = array(), $cid_info = "", $style = "regular")
 {
     global $current_user;
     if (!is_admin($current_user)) {
         sugar_die($GLOBALS['app_strings']['ERR_NOT_ADMIN']);
     }
     $error = false;
     $oldStr = ob_get_contents();
     ob_clean();
     require_once "include/tcpdf/fonts/utils/makefont.php";
     $filename = MakeFont($font_file, $metric_file, $embedded, $encoding_table, $patch, $cid_info);
     unlink($font_file);
     unlink($metric_file);
     $this->log = ob_get_contents();
     ob_clean();
     echo $oldStr;
     if (empty($filename)) {
         array_push($this->errors, translate("ERR_FONT_MAKEFONT", "Configurator"));
         $error = true;
     } else {
         require_once "include/utils/file_utils.php";
         $this->filename = basename($filename . ".php");
         if (!$this->loadFontFile()) {
             if (!mkdir_recursive(K_PATH_CUSTOM_FONTS)) {
                 array_push($this->errors, "Error : Impossible to create the custom font directory.");
                 $error = true;
             } else {
                 $styleLetter = "";
                 switch ($style) {
                     case "italic":
                         $styleLetter = "i";
                         break;
                     case "bold":
                         $styleLetter = "b";
                         break;
                     case "boldItalic":
                         $styleLetter = "bi";
                         break;
                     default:
                         $styleLetter = "";
                 }
                 sugar_rename($filename . ".php", K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".php"));
                 $this->log .= "\n" . translate("LBL_FONT_MOVE_DEFFILE", "Configurator") . K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".php");
                 if (file_exists($filename . ".z")) {
                     sugar_rename($filename . ".z", K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".z"));
                     $this->log .= "\n" . translate("LBL_FONT_MOVE_FILE", "Configurator") . K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".z");
                 }
                 if (file_exists($filename . ".ctg.z")) {
                     sugar_rename($filename . ".ctg.z", K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".ctg.z"));
                     $this->log .= "\n" . translate("LBL_FONT_MOVE_FILE", "Configurator") . K_PATH_CUSTOM_FONTS . basename($filename . $styleLetter . ".ctg.z");
                 }
             }
         } else {
             array_push($this->errors, "\n" . translate("ERR_FONT_ALREADY_EXIST", "Configurator"));
             $error = true;
         }
         if ($error) {
             if (file_exists($filename . ".php")) {
                 unlink($filename . ".php");
             }
             if (file_exists($filename . ".ctg.z")) {
                 unlink($filename . ".ctg.z");
             }
             if (file_exists($filename . ".z")) {
                 unlink($filename . ".z");
             }
         }
     }
     $this->clearCachedFile();
     return $error;
 }
Ejemplo n.º 6
0
 /**
  * Restores files from deleted folder
  *
  * @return bool success of operation
  */
 protected function restoreFiles()
 {
     if (!$this->id) {
         return true;
     }
     if (!$this->haveFiles()) {
         return true;
     }
     $files = $this->getFiles();
     if (empty($files)) {
         return true;
     }
     $directory = $this->deleteFileDirectory();
     foreach ($files as $file) {
         if (sugar_is_file('upload://deleted/' . $directory . '/' . $file)) {
             if (!sugar_rename('upload://deleted/' . $directory . '/' . $file, 'upload://' . $file)) {
                 $GLOBALS['log']->error('Could not move file ' . $directory . '/' . $file . ' from deleted directory');
             }
         }
     }
     /**
      * @var DBManager $db
      */
     global $db;
     $db->query('DELETE FROM cron_remove_documents WHERE bean_id=' . $db->quoted($this->id));
     return true;
 }
Ejemplo n.º 7
0
 * Copyright (C) SugarCRM Inc. All rights reserved.
 */
require "include/modules.php";
require_once "include/utils/sugar_file_utils.php";
foreach ($beanFiles as $classname => $filename) {
    if (file_exists($filename)) {
        // Rename the class and its constructor adding SugarCore at the beginning  (Ex: class SugarCoreCall)
        $handle = file_get_contents($filename);
        $patterns = array('/class ' . $classname . '/', '/function ' . $classname . '/');
        $replace = array('class SugarCore' . $classname, 'function SugarCore' . $classname);
        $data = preg_replace($patterns, $replace, $handle);
        sugar_file_put_contents($filename, $data);
        // Rename the SugarBean file into SugarCore.SugarBean (Ex: SugarCore.Call.php)
        $pos = strrpos($filename, "/");
        $newfilename = substr_replace($filename, 'SugarCore.', $pos + 1, 0);
        sugar_rename($filename, $newfilename);
        //Create a new SugarBean that extends CoreBean
        $fileHandle = sugar_fopen($filename, 'w');
        $newclass = <<<FABRICE
<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
/*
 * Your installation or use of this SugarCRM file is subject to the applicable
 * terms available at
 * http://support.sugarcrm.com/06_Customer_Center/10_Master_Subscription_Agreements/.
 * If you do not agree to all of the applicable terms or do not have the
 * authority to bind the entity as an authorized representative, then do not
 * install or use this SugarCRM file.
 *
 * Copyright (C) SugarCRM Inc. All rights reserved.
 */
Ejemplo n.º 8
0
 /**
  * Upload document to external service
  * @param SugarBean $bean Related bean
  * @param string $bean_id
  * @param string $doc_type
  * @param string $file_name
  * @param string $mime_type
  */
 function upload_doc($bean, $bean_id, $doc_type, $file_name, $mime_type)
 {
     if (!empty($doc_type) && $doc_type != 'Sugar') {
         global $sugar_config;
         $destination = $this->get_upload_path($bean_id);
         sugar_rename($destination, str_replace($bean_id, $bean_id . '_' . $file_name, $destination));
         $new_destination = $this->get_upload_path($bean_id . '_' . $file_name);
         try {
             $this->api = ExternalAPIFactory::loadAPI($doc_type);
             if (isset($this->api) && $this->api !== false) {
                 $result = $this->api->uploadDoc($bean, $new_destination, $file_name, $mime_type);
             } else {
                 $result['success'] = FALSE;
                 // FIXME: Translate
                 $GLOBALS['log']->error("Could not load the requested API (" . $doc_type . ")");
                 $result['errorMessage'] = 'Could not find a proper API';
             }
         } catch (Exception $e) {
             $result['success'] = FALSE;
             $result['errorMessage'] = $e->getMessage();
             $GLOBALS['log']->error("Caught exception: (" . $e->getMessage() . ") ");
         }
         if (!$result['success']) {
             sugar_rename($new_destination, str_replace($bean_id . '_' . $file_name, $bean_id, $new_destination));
             $bean->doc_type = 'Sugar';
             // FIXME: Translate
             if (!is_array($_SESSION['user_error_message'])) {
                 $_SESSION['user_error_message'] = array();
             }
             $error_message = isset($result['errorMessage']) ? $result['errorMessage'] : $GLOBALS['app_strings']['ERR_EXTERNAL_API_SAVE_FAIL'];
             $_SESSION['user_error_message'][] = $error_message;
         } else {
             unlink($new_destination);
         }
     }
 }
Ejemplo n.º 9
0
 public function testsugar_rename()
 {
     //execute the method and test if it returns true/success
     $dir = 'vfs://root';
     $file = 'test.txt';
     $vfs = $this->rootFs;
     if ($vfs->hasChild($file) != true) {
         write_array_to_file('', '', $dir . '/' . $file);
     }
     //test with empty file names
     $actual = sugar_rename('', '');
     $this->assertFalse($actual);
     //test with valid file names
     $actual = sugar_rename($dir . '/' . $file, $dir . '/' . 'newtest.txt');
     $this->assertTrue($actual);
     unlink($dir . '/' . 'newtest.txt');
 }
Ejemplo n.º 10
0
 /**
  * Moves file to deleted folder
  *
  * @return bool success of movement
  */
 public function deleteFiles()
 {
     if (!$this->id) {
         return true;
     }
     if (!$this->haveFiles()) {
         return true;
     }
     $files = $this->getFiles();
     if (empty($files)) {
         return true;
     }
     $directory = $this->deleteFileDirectory();
     $isCreated = sugar_is_dir('upload://deleted/' . $directory);
     if (!$isCreated) {
         sugar_mkdir('upload://deleted/' . $directory, 0777, true);
         $isCreated = sugar_is_dir('upload://deleted/' . $directory);
     }
     if (!$isCreated) {
         return false;
     }
     foreach ($files as $file) {
         if (file_exists('upload://' . $file)) {
             if (!sugar_rename('upload://' . $file, 'upload://deleted/' . $directory . '/' . $file)) {
                 $GLOBALS['log']->error('Could not move file ' . $file . ' to deleted directory');
             }
         }
     }
     /**
      * @var DBManager $db
      */
     global $db;
     $record = array('bean_id' => $db->quoted($this->id), 'module' => $db->quoted($this->module_name), 'date_modified' => $db->convert($db->quoted(date('Y-m-d H:i:s')), 'datetime'));
     $recordDB = $db->fetchOne("SELECT id FROM cron_remove_documents WHERE module={$record['module']} AND bean_id={$record['bean_id']}");
     if (!empty($recordDB)) {
         $record['id'] = $db->quoted($recordDB['id']);
     }
     if (empty($record['id'])) {
         $record['id'] = $db->quoted(create_guid());
         $db->query('INSERT INTO cron_remove_documents (' . implode(', ', array_keys($record)) . ') VALUES(' . implode(', ', $record) . ')');
     } else {
         $db->query("UPDATE cron_remove_documents SET date_modified={$record['date_modified']} WHERE id={$record['id']}");
     }
     return true;
 }
Ejemplo n.º 11
0
 /**
  * rolls the logger file to start using a new file
  */
 protected function rollLog($force = false)
 {
     if (!$this->initialized || empty($this->logSize)) {
         return;
     }
     // bug#50265: Parse the its unit string and get the size properly
     $units = array('b' => 1, 'k' => 1024, 'm' => 1024 * 1024, 'g' => 1024 * 1024 * 1024);
     if (preg_match('/^\\s*([0-9]+\\.[0-9]+|\\.?[0-9]+)\\s*(k|m|g|b)(b?ytes)?/i', $this->logSize, $match)) {
         $rollAt = (int) $match[1] * $units[strtolower($match[2])];
     }
     //check if our log file is greater than that or if we are forcing the log to roll if and only if roll size assigned the value correctly
     if ($force || $rollAt && filesize($this->full_log_file) >= $rollAt) {
         //now lets move the logs starting at the oldest and going to the newest
         for ($i = $this->maxLogs - 2; $i > 0; $i--) {
             if (file_exists($this->log_dir . $this->logfile . $this->date_suffix . '_' . $i . $this->ext)) {
                 $to = $i + 1;
                 $old_name = $this->log_dir . $this->logfile . $this->date_suffix . '_' . $i . $this->ext;
                 $new_name = $this->log_dir . $this->logfile . $this->date_suffix . '_' . $to . $this->ext;
                 //nsingh- Bug 22548  Win systems fail if new file name already exists. The fix below checks for that.
                 //if/else branch is necessary as suggested by someone on php-doc ( see rename function ).
                 sugar_rename($old_name, $new_name);
                 //rename ( $this->logfile . $i . $this->ext, $this->logfile . $to . $this->ext );
             }
         }
         //now lets move the current .log file
         sugar_rename($this->full_log_file, $this->log_dir . $this->logfile . $this->date_suffix . '_1' . $this->ext);
     }
 }
 private function rollLog($force = false)
 {
     if (!$this->initialized || empty($this->logSize)) {
         return;
     }
     $megs = substr($this->logSize, 0, strlen($this->logSize) - 2);
     $rollAt = (int) $megs * 1024 * 1024;
     if ($force || filesize($this->logfile . $this->ext) >= $rollAt) {
         for ($i = $this->maxLogs - 2; $i > 0; $i--) {
             if (file_exists($this->logfile . $i . $this->ext)) {
                 $to = $i + 1;
                 $old_name = $this->logfile . $i . $this->ext;
                 $new_name = $this->logfile . $to . $this->ext;
                 sugar_rename($old_name, $new_name);
             }
         }
         sugar_rename($this->logfile . $this->ext, $this->logfile . '1' . $this->ext);
     }
 }