X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=admin%2Fbackups.php;h=5eee6256557e4bce6fe14898662553c365836c12;hb=2e570d1c62dd7775213cfffe3cf1ab186b94117f;hp=728d3f29dde29877efd2528e5cb453a122fcd0f2;hpb=fc72e71a81a7d2c9d68eabbb1200d4c0cbf17f6e;p=fa-stable.git diff --git a/admin/backups.php b/admin/backups.php index 728d3f29..5eee6256 100644 --- a/admin/backups.php +++ b/admin/backups.php @@ -9,7 +9,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License here . ***********************************************************************/ -$page_security = 15; +$page_security = 'SA_BACKUP'; $path_to_root=".."; include_once($path_to_root . "/includes/session.inc"); @@ -17,24 +17,30 @@ include_once($path_to_root . "/includes/ui.inc"); include_once($path_to_root . "/admin/db/maintenance_db.inc"); if (get_post('view')) { - $filename = BACKUP_PATH . get_post('cmb_backups'); - if (in_ajax()) - $Ajax->popup( $filename ); - else { - header('Content-type: application/octet-stream'); - header('Content-Length: '.filesize($filename)); - header("Content-Disposition: inline; filename=$filename"); - readfile($filename); - exit(); + if (!get_post('backups')) { + display_error(_('Select backup file first.')); + } else { + $filename = BACKUP_PATH . clean_file_name(get_post('backups')); + if (in_ajax()) + $Ajax->popup( $filename ); + else { + header('Content-type: text/plain'); + header('Content-Length: '.filesize($filename)); + header("Content-Disposition: inline"); + readfile($filename); + exit(); + } } }; - if (get_post('download')) { - download_file(BACKUP_PATH . get_post('cmb_backups')); - exit; + if (get_post('backups')) { + download_file(BACKUP_PATH . clean_file_name(get_post('backups'))); + exit; + } else + display_error(_("Select backup file first.")); } -page(_("Backup and Restore Database"), false, false, '', ''); +page(_($help_context = "Backup and Restore Database"), false, false, '', ''); check_paths(); @@ -51,12 +57,7 @@ function check_paths() function generate_backup($conn, $ext='no', $comm='') { - if ($conn['tbpref'] != "") - $filename = $conn['dbname'] . "_" . $conn['tbpref'] . date("Ymd_Hi") . ".sql"; - else - $filename = $conn['dbname'] . "_" . date("Ymd_Hi") . ".sql"; - - $filename = db_export($conn, $filename, $ext, $comm); + $filename = db_backup($conn, $ext, $comm); if ($filename) display_notification(_("Backup successfully generated."). ' ' . _("Filename") . ": " . $filename); @@ -72,7 +73,7 @@ function get_backup_file_combo() global $path_to_root, $Ajax; $ar_files = array(); - default_focus('cmb_backups'); + default_focus('backups'); $dh = opendir(BACKUP_PATH); while (($file = readdir($dh)) !== false) $ar_files[] = $file; @@ -84,10 +85,10 @@ function get_backup_file_combo() if (preg_match("/.sql(.zip|.gz)?$/", $file)) $opt_files .= ""; - $selector = ""; + $selector = ""; - $Ajax->addUpdate('cmd_backups', "_cmd_backups_sel", $selector); - $selector = "".$selector."\n"; + $Ajax->addUpdate('backups', "_backups_sel", $selector); + $selector = "".$selector."\n"; return $selector; } @@ -101,8 +102,8 @@ function compress_list_row($label, $name, $value=null) if (function_exists("gzopen")) $ar_comps['gzip'] = "gzip"; - echo "$label"; - array_selector('comp', $value, $ar_comps); + echo "$label"; + echo array_selector('comp', $value, $ar_comps); echo ""; } @@ -110,6 +111,7 @@ function download_file($filename) { if (empty($filename) || !file_exists($filename)) { + display_error(_('Select backup file first.')); return false; } $saveasname = basename($filename); @@ -123,44 +125,57 @@ function download_file($filename) $db_name = $_SESSION["wa_current_user"]->company; $conn = $db_connections[$db_name]; +$backup_name = clean_file_name(get_post('backups')); +$backup_path = BACKUP_PATH . $backup_name; if (get_post('creat')) { generate_backup($conn, get_post('comp'), get_post('comments')); - $Ajax->activate('cmd_backups'); + $Ajax->activate('backups'); }; if (get_post('restore')) { - if (db_import(BACKUP_PATH . get_post('cmb_backups'), $conn)) - display_notification(_("Restore backup completed.")); + if ($backup_name) { + if (db_import($backup_path, $conn)) + display_notification(_("Restore backup completed.")); + refresh_sys_prefs(); // re-read system setup + } else + display_error(_("Select backup file first.")); } -if (get_post('delete')) { - if (unlink(BACKUP_PATH . get_post('cmb_backups'))) { - display_notification(_("File successfully deleted.")." " - . _("Filename") . ": " . get_post('cmb_backups')); - $Ajax->activate('cmd_backups'); - } - else - display_error(_("Can't delete backup file.")); -}; +if (get_post('deldump')) { + if ($backup_name) { + if (unlink($backup_path)) { + display_notification(_("File successfully deleted.")." " + . _("Filename") . ": " . $backup_name); + $Ajax->activate('backups'); + } + else + display_error(_("Can't delete backup file.")); + } else + display_error(_("Select backup file first.")); +} if (get_post('upload')) { $tmpname = $_FILES['uploadfile']['tmp_name']; - $fname = $_FILES['uploadfile']['name']; - - if (!preg_match("/.sql(.zip|.gz)?$/", $fname)) - display_error(_("You can only upload *.sql backup files")); - elseif (is_uploaded_file($tmpname)) { - rename($tmpname, BACKUP_PATH . $fname); - display_notification( "File uploaded to backup directory"); - $Ajax->activate('cmd_backups'); + $fname = trim(basename($_FILES['uploadfile']['name'])); + + if ($fname) { + if (!preg_match("/\.sql(\.zip|\.gz)?$/", $fname)) + display_error(_("You can only upload *.sql backup files")); + elseif (is_uploaded_file($tmpname)) { + rename($tmpname, BACKUP_PATH . $fname); + display_notification(_("File uploaded to backup directory")); + $Ajax->activate('backups'); + } else + display_error(_("File was not uploaded into the system.")); } else - display_error(_("File was not uploaded into the system.")); + display_error(_("Select backup file first.")); + } //------------------------------------------------------------------------------- start_form(true, true); -start_outer_table($table_style2); +start_outer_table(TABLESTYLE2); table_section(1); table_section_title(_("Create backup")); textarea_row(_("Comments:"), 'comments', null, 30, 8); @@ -171,25 +186,23 @@ table_section(2); table_section_title(_("Backup scripts maintenance")); start_row(); - echo "".get_backup_file_combo().""; - echo ""; + echo "".get_backup_file_combo().""; + echo ""; start_table(); - submit_row('view',_("View Backup"), false, '', '', true); + submit_row('view',_("View Backup"), false, '', '', false); submit_row('download',_("Download Backup"), false, '', '', false); submit_row('restore',_("Restore Backup"), false, '','', 'process'); + submit_js_confirm('restore',_("You are about to restore database from backup file.\nDo you want to continue?")); - $js = "if(confirm(\"" - .sprintf(_('You are about to remove %s backup file.
Do you want to continue ?'), - get_post('cmb_backups')) - ."\")) { JsHttpRequest.request(\"delete\"); }"; - - submit_row('delete', _("Delete Backup"), false, '','', 'dialog'); + submit_row('deldump', _("Delete Backup"), false, '','', true); + // don't use 'delete' name or IE js errors appear + submit_js_confirm('deldump', sprintf(_("You are about to remove selected backup file.\nDo you want to continue ?"))); end_table(); echo ""; end_row(); start_row(); echo ""; - submit_cells('upload',_("Upload file"),'', '', true); + submit_cells('upload',_("Upload file"),"style='padding-left:20px'", '', true); end_row(); end_outer_table();