From 6250b7ea002fd99e40d0170d31e7e19e69f97ccd Mon Sep 17 00:00:00 2001 From: Dominik <info@profi-webdesign.net> Date: Thu, 23 Jan 2014 13:53:43 -0500 Subject: [PATCH] Merge remote-tracking branch 'ispc3master/master' --- server/plugins-available/maildeliver_plugin.inc.php | 18 +++++++++++++++++- 1 files changed, 17 insertions(+), 1 deletions(-) diff --git a/server/plugins-available/maildeliver_plugin.inc.php b/server/plugins-available/maildeliver_plugin.inc.php index 08a4998..c5b531d 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,21 @@ $tpl->setVar('addresses', $address_str); + 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, $tpl->grab()); + exec('chown '.$mail_config['mailuser_name'].':'.$mail_config['mailuser_group'].' '.escapeshellcmd($sieve_file)); + 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 +229,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