From d12a905c395ffc8471570b491e43638167157df4 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 07 Sep 2011 09:08:00 -0400
Subject: [PATCH] Fixed: FS#1701 - Backup symlink folder permissions wrong - pre 3.0.3.3

---
 interface/web/admin/lib/lang/en_server_config.lng           |    1 +
 install/tpl/server.ini.master                               |    1 +
 interface/web/admin/form/server_config.tform.php            |    6 ++++++
 interface/web/admin/templates/server_config_server_edit.htm |    6 ++++++
 server/cron_daily.php                                       |   10 +++++++++-
 5 files changed, 23 insertions(+), 1 deletions(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index 02d08ff..4d2652e 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -13,6 +13,7 @@
 nameservers=192.168.0.1,192.168.0.2
 loglevel=2
 backup_dir=/var/backup
+backup_dir_ftpread=y
 
 [mail]
 module=postfix_mysql
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index 38d282b..47ba89c 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -138,6 +138,12 @@
 			'width' => '40',
 			'maxlength' => '255'
 		),
+		'backup_dir_ftpread' => array(
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'y',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 	##################################
 	# ENDE Datatable fields
 	##################################
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 6c1e1a7..6b9bbfe 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -86,4 +86,5 @@
 $wb["CA_path_txt"] = 'CA Path';
 $wb["CA_pass_txt"] = 'CA passphrase';
 $wb["fastcgi_config_syntax_txt"] = 'FastCGI config syntax';
+$wb["backup_dir_ftpread_txt"] = 'Backup dir. readable for website FTP users.';
 ?>
\ No newline at end of file
diff --git a/interface/web/admin/templates/server_config_server_edit.htm b/interface/web/admin/templates/server_config_server_edit.htm
index a0e08cb..8f42d8c 100644
--- a/interface/web/admin/templates/server_config_server_edit.htm
+++ b/interface/web/admin/templates/server_config_server_edit.htm
@@ -42,6 +42,12 @@
       	<label for="backup_dir">{tmpl_var name='backup_dir_txt'}</label>
         <input name="backup_dir" id="backup_dir" value="{tmpl_var name='backup_dir'}" size="40" maxlength="255" type="text" class="textInput" />
 	  </div>
+	  <div class="ctrlHolder">
+		<p class="label">{tmpl_var name='backup_dir_ftpread_txt'}</p>
+		  <div class="multiField">
+			{tmpl_var name='backup_dir_ftpread'}
+		  </div>
+	  </div>
     </fieldset>
 
     <input type="hidden" name="id" value="{tmpl_var name='id'}">
diff --git a/server/cron_daily.php b/server/cron_daily.php
index 6f3774b..e21520c 100644
--- a/server/cron_daily.php
+++ b/server/cron_daily.php
@@ -435,8 +435,16 @@
 
 if($backup_dir != '') {
 	
+	if(isset($server_config['backup_dir_ftpread']) && $server_config['backup_dir_ftpread'] == 'y') {
+		$backup_dir_permissions = 0755;
+	} else {
+		$backup_dir_permissions = 0750;
+	}
+	
 	if(!is_dir($backup_dir)) {
-		mkdir(escapeshellcmd($backup_dir), 0750, true);
+		mkdir(escapeshellcmd($backup_dir), $backup_dir_permissions, true);
+	} else {
+		chmod(escapeshellcmd($backup_dir), $backup_dir_permissions);
 	}
 	
 	$sql = "SELECT * FROM web_domain WHERE type = 'vhost'";

--
Gitblit v1.9.1