Example #1
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $ftpSettings = Settings_BackUp_Module_Model::getFTPSettings();
     if ($ftpSettings != false) {
         $viewer->assign('FTP_HOST', $ftpSettings[1]);
         $viewer->assign('FTP_LOGIN', $ftpSettings[2]);
         $password = Settings_BackUp_Module_Model::encrypt_decrypt('decrypt', $ftpSettings[3]);
         $viewer->assign('FTP_PASSWORD', $password);
         $viewer->assign('FTP_CONNECTION_STATUS', $ftpSettings[4]);
         $viewer->assign('FTP_PORT', $ftpSettings[5]);
         $viewer->assign('FTP_ACTIVE', $ftpSettings[6]);
         $viewer->assign('FTP_PATH', $ftpSettings[7]);
     }
     $adminUsers = Users_Module_Model::getAdminUsers();
     $backUpInfo = Settings_BackUp_Module_Model::getBackUpInfo();
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $pagination = Settings_BackUp_Pagination_Action::process($request);
     $pagination = json_decode($pagination, true);
     $viewer->assign('PREV_PAGE', $pagination['prevPage']);
     $viewer->assign('NEXT_PAGE', $pagination['nextPage']);
     $viewer->assign('OFFSET', $pagination['offset']);
     $viewer->assign('ALL_PAGES', $pagination['allPages']);
     $viewer->assign('PAGE', $pagination['page']);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('BACKUP_EXIST', $backUpInfo['status']);
     $viewer->assign('BACKUPS', $pagination['backups']);
     $viewer->assign('QUALIFIED_MODULE_NAME', $qualifiedModuleName);
     $viewer->assign('ADMIN_USERS', $adminUsers);
     $viewer->view('Index.tpl', $qualifiedModuleName);
 }
Example #2
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $ftpSettings = Settings_BackUp_Module_Model::getFTPSettings();
     if ($ftpSettings != false) {
         $viewer->assign('FTP_SERVER_NAME', $ftpSettings[1]);
         $viewer->assign('FTP_LOGIN', $ftpSettings[2]);
         $viewer->assign('FTP_PASSWORD', $ftpSettings[3]);
         $viewer->assign('FTP_CONNECTION_STATUS', $ftpSettings[4]);
     }
     $backUpInfo = Settings_BackUp_Module_Model::getBackUpInfo();
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $pagination = Settings_BackUp_Pagination_Action::process($request);
     $pagination = json_decode($pagination, true);
     $viewer->assign('PREV_PAGE', $pagination['prevPage']);
     $viewer->assign('NEXT_PAGE', $pagination['nextPage']);
     $viewer->assign('OFFSET', $pagination['offset']);
     $viewer->assign('ALL_PAGES', $pagination['allPages']);
     $viewer->assign('PAGE', $pagination['page']);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('BACKUP_EXIST', $backUpInfo['status']);
     $viewer->assign('BACKUPS', $pagination['backups']);
     $viewer->assign('FTP_SERVER_NAME', $ftpSettings[1]);
     $viewer->assign('FTP_LOGIN', $ftpSettings[2]);
     $viewer->assign('FTP_PASSWORD', $ftpSettings[3]);
     $viewer->assign('FTP_CONNECTION_STATUS', $ftpSettings[4]);
     $viewer->view('Index.tpl', $qualifiedModuleName);
 }
Example #3
0
 public function process(Vtiger_Request $request)
 {
     $adb = PearDatabase::getInstance();
     $limit = 10;
     $allBackups = Settings_BackUp_Module_Model::getBackupCount();
     if ($request->get('page') != '') {
         $page = $request->get('page');
         $offset = ($page - 1) * $limit;
         if ($request->get('page') == 1) {
             $prevPage = 0;
         } else {
             $prevPage = 1;
         }
     } else {
         $page = 1;
         $offset = 0;
         $prevPage = 0;
     }
     $nextPage = 1;
     $allPages = ceil($allBackups / $limit);
     if ($allPages == $page || $allBackups <= $limit) {
         $nextPage = 0;
     }
     $backups = Settings_BackUp_Module_Model::getBackupList($offset, $limit);
     $result = array('prevPage' => $prevPage, 'nextPage' => $nextPage, 'offset' => $offset, 'allPages' => $allPages, 'page' => $page, 'backups' => $backups);
     if ($request->get('ajaxCall') === '') {
         $json = json_encode($result);
         return $json;
     }
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
Example #4
0
 public function updateSettings(Vtiger_Request $request)
 {
     $param = $request->get('param');
     $moduleModel = Settings_BackUp_Module_Model::getCleanInstance();
     $response = new Vtiger_Response();
     $response->setResult(array('success' => $moduleModel->updateSettings($param), 'message' => vtranslate('LBL_SAVE_CONFIG', $request->getModule(false))));
     $response->emit();
 }
Example #5
0
 public static function stopBackup()
 {
     $log = vglobal('log');
     Settings_BackUp_Module_Model::stopBackup();
     $response = new Vtiger_Response();
     $response->setResult([]);
     $response->emit();
 }
Example #6
0
 public function process(Vtiger_Request $request)
 {
     $viewer = $this->getViewer($request);
     $backupModel = Settings_BackUp_Module_Model::getCleanInstance();
     $ftpSettings = $backupModel->getFTPSettings();
     if ($ftpSettings != false) {
         $viewer->assign('FTP_HOST', $ftpSettings['host']);
         $viewer->assign('FTP_LOGIN', $ftpSettings['login']);
         $password = $backupModel->encrypt_decrypt('decrypt', $ftpSettings['password']);
         $viewer->assign('FTP_PASSWORD', $password);
         $viewer->assign('FTP_CONNECTION_STATUS', $ftpSettings['status']);
         $viewer->assign('FTP_PORT', $ftpSettings['port']);
         $viewer->assign('FTP_ACTIVE', $ftpSettings['active']);
         $viewer->assign('FTP_PATH', $ftpSettings['path']);
     }
     $dirsFromConfig = $backupModel->getConfig('folder');
     $mainConfig = $backupModel->getConfig('main');
     $usersForNotifications = $backupModel->getUsersForNotifications();
     $adminUsers = Users_Module_Model::getAdminUsers();
     $backUpInfo = $backupModel->getBackUpInfo();
     $moduleName = $request->getModule();
     $qualifiedModuleName = $request->getModule(false);
     $pagination = Settings_BackUp_Pagination_Action::process($request);
     $pagination = json_decode($pagination, true);
     $viewer->assign('BACKUP_MODEL', $backupModel);
     $viewer->assign('BACKUP_INFO', $backupModel->getBackupInfo());
     $viewer->assign('DIRSFROMCONFIG', $dirsFromConfig);
     $viewer->assign('MAIN_CONFIG', $mainConfig);
     $viewer->assign('USERFORNOTIFICATIONS', $usersForNotifications);
     $viewer->assign('PREV_PAGE', $pagination['prevPage']);
     $viewer->assign('NEXT_PAGE', $pagination['nextPage']);
     $viewer->assign('OFFSET', $pagination['offset']);
     $viewer->assign('ALL_PAGES', $pagination['allPages']);
     $viewer->assign('PAGE', $pagination['page']);
     $viewer->assign('MODULE', $moduleName);
     $viewer->assign('BACKUP_EXIST', $backUpInfo['status']);
     $viewer->assign('BACKUPS', $pagination['backups']);
     $viewer->assign('QUALIFIED_MODULE_NAME', $qualifiedModuleName);
     $viewer->assign('ADMIN_USERS', $adminUsers);
     $viewer->view('Index.tpl', $qualifiedModuleName);
 }
Example #7
0
 public function saveftp(Vtiger_Request $request)
 {
     $adb = PearDatabase::getInstance();
     $log = vglobal('log');
     $log->debug('Settings_BackUp_SaveFTPConfig_Action: process started');
     $ftpServerName = $request->get('ftpservername');
     $ftpLogin = $request->get('ftplogin');
     $ftpPassword = $request->get('ftppassword');
     $ftpPort = $request->get('ftpport');
     $ftpPath = $request->get('ftppath');
     $ftpActive = $request->get('ftpactive');
     if ('true' == $ftpActive) {
         $ftpActive = TRUE;
     } else {
         $ftpActive = FALSE;
     }
     if ('' != $ftpPort) {
         $ftpConnect = @ftp_connect($ftpServerName, $ftpPort);
     } else {
         $ftpConnect = @ftp_connect($ftpServerName);
         $ftpPort = NULL;
     }
     if (!$ftpConnect) {
         $result = array('success' => true, 'fptConnection' => false, 'message' => 'JS_HOST_NOT_CORRECT');
     } else {
         $loginResult = @ftp_login($ftpConnect, $ftpLogin, $ftpPassword);
         if (FALSE == $loginResult) {
             $log->debug('FTP connection has failed!');
             $result = array('success' => true, 'fptConnection' => false, 'message' => 'JS_CONNECTION_FAIL');
         } else {
             $log->debug('FTP connection has success!');
             $result = array('success' => true, 'fptConnection' => true, 'message' => 'JS_SAVE_CHANGES');
             Settings_BackUp_Module_Model::saveFTPSettings($ftpServerName, $ftpLogin, $ftpPassword, TRUE, $ftpPort, $ftpActive, $ftpPath);
         }
     }
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
Example #8
0
 public function process(Vtiger_Request $request)
 {
     global $adb;
     global $log;
     $ftpServerName = $request->get('ftpservername');
     $ftpLogin = $request->get('ftplogin');
     $ftpPassword = $request->get('ftppassword');
     //$moduleName = $request->getModule();
     $ftpConnect = ftp_connect($ftpServerName);
     $loginResult = ftp_login($ftpConnect, $ftpLogin, $ftpPassword);
     if ($loginResult == false) {
         $log->info('FTP connection has failed!');
         $result = array('success' => true, 'fptConnection' => false);
         Settings_BackUp_Module_Model::saveFTPSettings($ftpServerName, $ftpLogin, $ftpPassword, FALSE);
     } else {
         $log->info('FTP connection has success!');
         $result = array('success' => true, 'fptConnection' => true);
         Settings_BackUp_Module_Model::saveFTPSettings($ftpServerName, $ftpLogin, $ftpPassword, TRUE);
     }
     $response = new Vtiger_Response();
     $response->setResult($result);
     $response->emit();
 }
Example #9
0
 public function getBackupList($offset = null, $limit = null)
 {
     $db = PearDatabase::getInstance();
     $query = 'SELECT * FROM vtiger_backup ORDER BY endtime DESC';
     if ($offset !== null) {
         $query .= " LIMIT {$offset}, {$limit}";
     }
     $result = $db->query($query);
     $return = [];
     $moduleName = 'Settings::BackUp';
     for ($i = 0; $i < $db->num_rows($result); $i++) {
         $return[] = ['id' => $db->query_result_raw($result, $i, 'id'), 'starttime' => $db->query_result_raw($result, $i, 'starttime'), 'endtime' => $db->query_result_raw($result, $i, 'endtime') != null ? $db->query_result_raw($result, $i, 'endtime') : '', 'filename' => $db->query_result_raw($result, $i, 'filename') . '.zip', 'status' => vtranslate(self::getStatusName($db->query_result_raw($result, $i, 'status')), $moduleName), 'backuptime' => Settings_BackUp_Module_Model::formatBackupTime($db->query_result_raw($result, $i, 'backuptime'))];
     }
     return $return;
 }
 public function zipData($source, $destination, $backup, $cron, $backupedDirs = array(), $fileName)
 {
     $log = vglobal('log');
     $log->info('Create zip');
     $newSubDirs[] = (string) $source;
     if (extension_loaded('zip')) {
         if (file_exists($source)) {
             $zip = new ZipArchive();
             if ($zip->open($destination, ZIPARCHIVE::CREATE)) {
                 if (is_dir($source)) {
                     $files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($source), RecursiveIteratorIterator::SELF_FIRST);
                     foreach ($files as $file) {
                         if ($count == 80) {
                             if ($cron == FALSE) {
                                 $percentage = Settings_BackUp_Module_Model::getPercentage();
                                 exit(json_encode(array('percentage' => $percentage)));
                             }
                         }
                         if (is_dir($file)) {
                             $newSubDirs[] = $file;
                             if ($backup) {
                                 $fileName = str_replace('\\', '/', (string) $file);
                                 if (isset($backupedDirs[$fileName]) && $backupedDirs[$fileName] == 0) {
                                     Settings_BackUp_Module_Model::setDirBackuped($fileName);
                                     $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
                                     $count++;
                                 }
                             }
                         } else {
                             if (is_file($file)) {
                                 if ($backup && strpos((string) $file, $fileName) === FALSE) {
                                     $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
                                 }
                             }
                         }
                     }
                     if (!$backup) {
                         Settings_BackUp_Module_Model::addBackupDirs($newSubDirs);
                     }
                 } else {
                     if (is_file($source)) {
                         if ($backup) {
                             $zip->addFromString(basename($source), file_get_contents($source));
                         }
                     }
                 }
             }
             Settings_BackUp_Module_Model::setDirBackuped($source);
             return $zip->close();
         }
     }
     return false;
 }
Example #11
0
 public function process(Vtiger_Request $request)
 {
     Settings_BackUp_Module_Model::userBackUpCall($request);
     $log->info('Settings_BackUp_CreateBackUp_Action::process - Backup started by');
 }