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); }
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); }
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(); }
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(); }
public static function stopBackup() { $log = vglobal('log'); Settings_BackUp_Module_Model::stopBackup(); $response = new Vtiger_Response(); $response->setResult([]); $response->emit(); }
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); }
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(); }
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(); }
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; }
public function process(Vtiger_Request $request) { Settings_BackUp_Module_Model::userBackUpCall($request); $log->info('Settings_BackUp_CreateBackUp_Action::process - Backup started by'); }