mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-12-15 19:20:47 +01:00
72 lines
1.5 KiB
PHP
72 lines
1.5 KiB
PHP
<?php
|
|
/**
|
|
* EGroupware - Admin - DB backup and restore
|
|
*
|
|
* @link http://www.egroupware.org
|
|
* @author Ralf Becker <rb@egroupware.org>
|
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
|
* @package admin
|
|
*/
|
|
|
|
use EGroupware\Api;
|
|
use EGroupware\Stylite\Vfs\S3;
|
|
|
|
class admin_db_backup
|
|
{
|
|
/**
|
|
* @var true[]
|
|
*/
|
|
public $public_functions = array(
|
|
'index' => true,
|
|
);
|
|
/**
|
|
* @var Api\Db\Backup
|
|
*/
|
|
protected $db_backup;
|
|
|
|
/**
|
|
* Method for scheduled backups, called via asynservice
|
|
*/
|
|
function do_backup()
|
|
{
|
|
if (class_exists(S3\Backup::class) && S3\Backup::available())
|
|
{
|
|
$this->db_backup = new S3\Backup();
|
|
}
|
|
else
|
|
{
|
|
$this->db_backup = new Api\Db\Backup();
|
|
}
|
|
|
|
try {
|
|
$f = $this->db_backup->fopen_backup();
|
|
$this->db_backup->backup($f);
|
|
if (is_resource($f))
|
|
{
|
|
fclose($f);
|
|
}
|
|
/* Remove old backups. */
|
|
$this->db_backup->housekeeping();
|
|
}
|
|
catch (\Exception $e) {
|
|
// log error
|
|
_egw_log_exception($e);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* includes setup's db_backup to display/access it inside admin
|
|
*/
|
|
function index()
|
|
{
|
|
$tpl_root = EGW_SERVER_ROOT.'/setup/templates/default';
|
|
$self = $GLOBALS['egw']->link('/index.php',array('menuaction'=>'admin.admin_db_backup.index'));
|
|
Api\Translation::add_app('setup');
|
|
Api\Header\ContentSecurityPolicy::add('script-src', 'unsafe-inline');
|
|
|
|
include EGW_SERVER_ROOT.'/setup/db_backup.php';
|
|
|
|
unset($tpl_root, $self);
|
|
echo $GLOBALS['egw']->framework->footer();
|
|
}
|
|
} |