From c3570e5419af1f86a1662239674087988eb737c4 Mon Sep 17 00:00:00 2001 From: Till Brehm <tbrehm@ispconfig.org> Date: Fri, 03 Jan 2014 09:27:11 -0500 Subject: [PATCH] Merge branch 'master' of git.ispconfig.org:ispconfig/ispconfig3 --- server/plugins-available/maildeliver_plugin.inc.php | 19 +++++++++++++++++-- 1 files changed, 17 insertions(+), 2 deletions(-) diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 08a4998..7ff4a72 100644 --- a/server/plugins-available/maildeliver_plugin.inc.php +++ b/server/plugins-available/maildeliver_plugin.inc.php @@ -98,8 +98,9 @@ $app->log("Mailfilter config has been changed", LOGLEVEL_DEBUG); $sieve_file = $data["new"]["maildir"].'/.sieve'; + $sieve_file_isp = $data["new"]["maildir"].'/sieve/ispconfig.sieve'; if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); - + if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); $app->load('tpl'); //* Select sieve filter file for dovecot version @@ -204,8 +205,20 @@ $tpl->setVar('addresses', $address_str); - file_put_contents($sieve_file, $tpl->grab()); + if ( ! is_dir($data["new"]["maildir"].'/sieve/') ) { + $app->system->mkdirpath($data["new"]["maildir"].'/sieve/', 0700, $mail_config['mailuser_name'], $mail_config['mailuser_group']); + } + file_put_contents($sieve_file_isp, $tpl->grab()); + chown($sieve_file_isp,$mail_config['mailuser_name']); + chgrp($sieve_file_isp,$mail_config['mailuser_group']); + chdir($data["new"]["maildir"]); + //* create symlink to activate sieve script + symlink("sieve/ispconfig.sieve", ".sieve") or $app->log("Unable to create symlink to active sieve filter", LOGLEVEL_WARN); + if (is_link(".sieve")) { + lchown(".sieve",$mail_config['mailuser_name']); + lchgrp(".sieve",$mail_config['mailuser_group']); + } unset($tpl); } @@ -215,7 +228,9 @@ global $app, $conf; $sieve_file = $data["old"]["maildir"].'/.sieve'; + $sieve_file_isp = $data["old"]["maildir"].'/sieve/ispconfig.sieve'; if(is_file($sieve_file)) unlink($sieve_file) or $app->log("Unable to delete file: $sieve_file", LOGLEVEL_WARN); + if(is_file($sieve_file_isp)) unlink($sieve_file_isp) or $app->log("Unable to delete file: $sieve_file_isp", LOGLEVEL_WARN); } -- Gitblit v1.9.1