tbrehm
2010-09-19 d2212dda734bb8c4b899faab848fa1bd7c1bf66e
server/lib/classes/system.inc.php
@@ -1187,32 +1187,47 @@
      global $app;
      
      if($subfolder != '') {
         $dir = escapeshellarg($maildir_path.'/.'.$subfolder);
         $dir_cur = escapeshellarg($maildir_path.'/.'.$subfolder.'/cur');
         $dir_new = escapeshellarg($maildir_path.'/.'.$subfolder.'/new');
         $dir_tmp = escapeshellarg($maildir_path.'/.'.$subfolder.'/tmp');
         $dir = escapeshellcmd($maildir_path.'/.'.$subfolder);
      } else {
         $dir = escapeshellarg($maildir_path);
         $dir_cur = escapeshellarg($maildir_path.'/cur');
         $dir_new = escapeshellarg($maildir_path.'/new');
         $dir_tmp = escapeshellarg($maildir_path.'/tmp');
         $dir = escapeshellcmd($maildir_path);
      }
      if($user != '' && $user != 'root' && $this->is_user($user)) {
         $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);
         $chown_mdsub = true;
      }
      
      exec("mkdir -p $dir_cur $dir_new $dir_tmp");
      exec("chmod 0700 $dir $dir_cur $dir_new $dir_tmp");
      $maildirsubs = array('cur','new','tmp');
      foreach ($maildirsubs as $mdsub) {
         mkdir($dir.'/'.$mdsub, 0700, true);
         if ($chown_mdsub) {
            chown($dir.'/'.$mdsub, $user);
            chgrp($dir.'/'.$mdsub, $group);
         }
      }
      chmod($dir, 0700);
      
      /*
      if($user != '' && $this->is_user($user) && $user != 'root') {
         $user = escapeshellarg($user);
         $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;
         exec("chown $user:$group $dir $dir_cur $dir_new $dir_tmp");
      }
      */
      
      //* Add the subfolder to the subscriptions and courierimapsubscribed files
      if($subfolder != '') {
         // Courier
         if(!is_file($maildir_path.'/courierimapsubscribed')) {
            $tmp_file = escapeshellarg($maildir_path.'/courierimapsubscribed');
            $tmp_file = escapeshellcmd($maildir_path.'/courierimapsubscribed');
            touch($tmp_file);
            chmod($tmp_file, 0744);
            chown($tmp_file,'vmail');
@@ -1222,7 +1237,7 @@
         
         // Dovecot
         if(!is_file($maildir_path.'/subscriptions')) {
            $tmp_file = escapeshellarg($maildir_path.'/subscriptions');
            $tmp_file = escapeshellcmd($maildir_path.'/subscriptions');
            touch($tmp_file);
            chmod($tmp_file, 0744);
            chown($tmp_file,'vmail');