Skip to content

Commit a812388

Browse files
author
Florian Schaal
committed
Allow the admin to configure the deleting of backups when a web-site / mail-domain is deleted.
1 parent f858c22 commit a812388

File tree

6 files changed

+18
-3
lines changed

6 files changed

+18
-3
lines changed

install/tpl/server.ini.master

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ backup_dir=/var/backup
1919
backup_dir_is_mount=n
2020
backup_dir_mount_cmd=
2121
backup_mode=rootgz
22+
baclup_delete=n
2223
monit_url=
2324
monit_user=
2425
monit_password=

interface/web/admin/form/server_config.tform.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,12 @@
195195
'width' => '40',
196196
'maxlength' => '255'
197197
),
198+
'backup_delete' => array(
199+
'datatype' => 'VARCHAR',
200+
'formtype' => 'CHECKBOX',
201+
'default' => 'y',
202+
'value' => array(0 => 'n', 1 => 'y')
203+
),
198204
'monit_url' => array(
199205
'datatype' => 'VARCHAR',
200206
'formtype' => 'TEXT',

interface/web/admin/lib/lang/en_server_config.lng

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,4 +196,5 @@ $wb["vhost_rewrite_v6_txt"] = 'Rewrite IPv6 on Mirror';
196196
$wb["v6_prefix_length"] = 'Prefix too long according to defined IPv6 ';
197197
$wb['backup_dir_is_mount_txt'] = 'Backup directory is a mount?';
198198
$wb['backup_dir_mount_cmd_txt'] = 'Mount command, if backup directory not mounted';
199+
$wb['backup_delete_txt'] = 'Delete backups on domain/website delete';
199200
?>

interface/web/admin/templates/server_config_server_edit.htm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ <h2><tmpl_var name="list_head_txt"></h2>
7373
<select name="backup_mode" id="backup_mode" class="selectInput">
7474
{tmpl_var name='backup_mode'}
7575
</select>
76+
</div>
77+
<div class="ctrlHolder">
78+
<p class="label">{tmpl_var name='backup_delete_txt'}</p>
79+
<div class="multiField">
80+
{tmpl_var name='backup_delete'}
81+
</div>
7682
</div>
7783
<div class="ctrlHolder">
7884
<label for="monit_url">{tmpl_var name='monit_url_txt'}</label>

server/plugins-available/apache2_plugin.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1991,7 +1991,7 @@ function delete($event_name, $data) {
19911991
//* mount backup directory, if necessary
19921992
$mount_backup = true;
19931993
$server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
1994-
if($server_config['backup_dir'] != '') {
1994+
if($server_config['backup_dir'] != '' && $server_config['backup_delete'] == 'y') {
19951995
if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
19961996
if(!$app->system->is_mounted($backup_dir)){
19971997
exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));

server/plugins-available/mail_plugin.inc.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,14 @@ function user_delete($event_name, $data) {
326326
} else {
327327
$app->log('Possible security violation when deleting the maildir: '.$data['old']['maildir'], LOGLEVEL_ERROR);
328328
}
329+
329330
//* Delete the mail-backups
330331
$server_config = $app->getconf->get_server_config($conf['server_id'], 'server');
331332
$backup_dir = $server_config['backup_dir'];
332333
//* mount backup directory, if necessary
333334
$mount_backup = true;
334335
$server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
335-
if($server_config['backup_dir'] != '' && $maildir_path_deleted) {
336+
if($server_config['backup_dir'] != '' && $maildir_path_deleted && $server_config['backup_delete'] == 'y') {
336337
if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
337338
if(!$app->system->is_mounted($backup_dir)){
338339
exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));
@@ -391,7 +392,7 @@ function domain_delete($event_name, $data) {
391392
//* mount backup directory, if necessary
392393
$mount_backup = true;
393394
$server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
394-
if($server_config['backup_dir'] != '' && $maildomain_path_deleted) {
395+
if($server_config['backup_dir'] != '' && $maildomain_path_deleted && $server_config['backup_delete'] == 'y'){
395396
if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
396397
if(!$app->system->is_mounted($backup_dir)){
397398
exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));

0 commit comments

Comments
 (0)