function GROUP_SIEVE_UPDATE() { $gid = $_GET["sieve-update-users"]; $tpl = new templates(); $gp = new groups($gid); echo $tpl->_ENGINE_parse_body("<H1>{sieve_auto_script}:{events}</H1>"); if ($gp->Privileges_array["EnableSieveArticaScript"] == 1) { include_once 'ressources/class.sieve.inc'; if (!is_array($gp->members_array)) { echo $tpl->_ENGINE_parse_body("<span style='color:red;font-size:14px;font-weight:bold;color:red'>{ERROR_GROUP_STORE_NO_MEMBERS}</span>"); return null; } echo "<div style='width:100%;height:200px;overflow:auto;background-color:white'>"; while (list($num, $ligne) = each($gp->members_array)) { if (trim($num) == null) { continue; } $sieve = new clSieve($num); $sieve->ECHO_ERROR = false; if ($sieve->AddAutoScript()) { } else { $result = $tpl->_ENGINE_parse_body("{failed}:<div style='margin:4px;font-size:10px;font-weight:bold;color:red'>{$sieve->error}</div>"); } echo "<div style='border:1px dotted #CCCCCC;padding:3px;margin:3px'>\n\t\t\t\t\t<div style='font-size:12px;font-weight:bold'>{$num}: <code>{$result}</code></div>\n\t\t\t\t\n\t\t\t\t</div>"; } echo "</div>"; } }
function sieve_edit_filter() { $uid = $_GET["sieve-edit-filter"]; $rulename = $_GET["sieve-rule-name"]; $rulenumber = $_GET["sieve-rule-number"]; $index = $_GET["sieve-filter-index"]; $condition = $_GET["condition"]; $matchType = $_GET["matchType"]; $matchStr = $_GET["matchStr"]; $header = $_GET["header"]; $sieve = new clSieve($uid); $rules = $sieve->GetRules($rulename); if (isset($_GET["control"])) { $rules[$rulenumber]["control"] = $_GET["control"]; } if (isset($_GET["control"])) { $rules[$rulenumber]["control"] = $_GET["control"]; } if (isset($_GET["matchAny"])) { $rules[$rulenumber]["matchAny"] = $_GET["matchAny"]; } switch ($condition) { case "from": $arr["type"] = "address"; $arr["header"] = "from"; break; case "subject": $arr["type"] = "header"; $arr["header"] = "subject"; break; case "tocc": $arr["type"] = "address"; $arr["header"][] = "to"; $arr["header"][] = "cc"; break; case "to": $arr["type"] = "address"; $arr["header"] = "to"; break; case "header": $arr["type"] = "header"; $arr["header"] = "{$header}"; default: break; } $arr["matchStr"] = $matchStr; $arr["matchType"] = $matchType; $rules[$rulenumber]["conditions"][$index] = $arr; $content = $sieve->CompileRule($rules, $rulename); $sieve->SaveRule($rulename, $content); }
function SieveSaveToCyrus() { $userid = $_GET["SieveSaveToCyrus"]; $sieve = new clSieve($userid); $sieve->SaveToSieve(); //and $sieve->error_raw[] }
function sieve_save_vacation() { $sieve = new clSieve($_GET["sieve-save-vacation"]); $sieve->GetRuleVacation(); $sieve_rule_name = $sieve->sieve_rulename; writelogs("uid={$_GET["sieve-save-vacation"]}:: rule:{$sieve_rule_name},", __FUNCTION__, __FILE__); if ($sieve_rule_name != null) { $rules = $sieve->GetRules($sieve_rule_name); $vacation_rule = $rules[$sieve->sieve_ruleindex]; } else { writelogs("uid={$_GET["sieve-save-vacation"]}:: create default rule:AntiSpamJunk", __FUNCTION__, __FILE__); if ($sieve->CreateArticaRule()) { $sieve = new clSieve($_GET["sieve-save-vacation"]); $sieve_rule_name = "AntiSpamJunk"; $rules = $sieve->GetRules($sieve_rule_name); $sieve->sieve_ruleindex = count($rules); } else { writelogs("uid={$_GET["sieve-save-vacation"]}:: create default rule:AntiSpamJunk FAILED!", __FUNCTION__, __FILE__); } } writelogs("{$_GET["sieve-save-vacation"]}:: put rule name \"{$sieve_rule_name}\"", __FUNCTION__, __FILE__); switch ($_GET["vacation_enabled"]) { case 1: $rules[$sieve->sieve_ruleindex]["status"] = "ENABLED"; break; case 0: $rules[$sieve->sieve_ruleindex]["status"] = "DISABLED"; break; default: $rules[$sieve->sieve_ruleindex]["status"] = "ENABLED"; break; } $_GET["message"] = str_replace("\n", "\r\n", $_GET["message"]); $rules[$sieve->sieve_ruleindex]["control"] = ""; $rules[$sieve->sieve_ruleindex]["matchAny"] = ""; $rules[$sieve->sieve_ruleindex]["conditions"] = array(); $rules[$sieve->sieve_ruleindex]["special"] = "vacation"; $rules[$sieve->sieve_ruleindex]["actions"][0]["days"] = $_GET["days"]; $rules[$sieve->sieve_ruleindex]["actions"][0]["message"] = $_GET["message"]; $ct = new user($_GET["sieve-save-vacation"]); $rules[$sieve->sieve_ruleindex]["actions"][0]["addresses"] = $ct->HASH_ALL_MAILS; $content = $sieve->CompileRule($rules, $sieve_rule_name); $sieve->SaveRule($sieve_rule_name, $content); }