From e94a9fb5e4b6a2bc07e0bb4cf8ea35fc70c4bbf0 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Thu, 10 May 2012 12:31:27 -0400
Subject: [PATCH] Merged revisions 3049-3051,3053-3054,3058,3070,3074-3077,3082,3086-3088,3091-3092,3094-3095 from stable branch.
---
server/lib/classes/system.inc.php | 30 +++++++++++++++++++++++++-----
1 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index 1d5579e..7537ef4 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1157,9 +1157,11 @@
if($found == 0) {
//* add \n if the last line does not end with \n or \r
- if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
+ if(substr($out,-1) != "\n" && substr($out,-1) != "\r" && filesize($filename) > 0) $out .= "\n";
//* add the new line at the end of the file
- if($append == 1) $out .= $new_line."\n";
+ if($append == 1) {
+ $out .= $new_line."\n";
+ }
}
file_put_contents($filename,$out);
}
@@ -1198,8 +1200,8 @@
$user = escapeshellcmd($user);
// I assume that the name of the (vmail group) is the same as the name of the mail user in ISPConfig 3
$group = $user;
- chown($dir,$user);
- chgrp($dir,$group);
+ if(is_dir($dir)) chown($dir,$user);
+ if(is_dir($dir)) chgrp($dir,$group);
$chown_mdsub = true;
}
@@ -1207,7 +1209,7 @@
$maildirsubs = array('cur','new','tmp');
foreach ($maildirsubs as $mdsub) {
- mkdir($dir.'/'.$mdsub, 0700, true);
+ if(!is_dir($dir.'/'.$mdsub)) mkdir($dir.'/'.$mdsub, 0700, true);
if ($chown_mdsub) {
chown($dir.'/'.$mdsub, $user);
chgrp($dir.'/'.$mdsub, $group);
@@ -1251,6 +1253,24 @@
$app->log('Created Maildir '.$maildir_path.' with subfolder: '.$subfolder,LOGLEVEL_DEBUG);
}
+
+ //* Function to create directory paths and chown them to a user and group
+ function mkdirpath($path, $mode = 0755, $user = '', $group = '') {
+ $path_parts = explode('/',$path);
+ $new_path = '';
+ if(is_array($path_parts)) {
+ foreach($path_parts as $part) {
+ $new_path .= '/'.$part;
+ if(!@is_dir($new_path)) {
+ mkdir($new_path);
+ chmod($new_path,$mode);
+ if($user != '') chown($new_path,$user);
+ if($group != '') chgrp($new_path,$group);
+ }
+ }
+ }
+
+ }
}
?>
--
Gitblit v1.9.1