index 6ac3c6ee5237fc2230de1928526b45fa78c4eec2..76c5df39501b40eb4f46f201a18c16d255fc38d1 100644 (file)
* import dialog opened.
*/
var $Import_Script = FALSE;
+ var $acl = "";
/* Initialize the class and load all sieve scripts
* try to parse them and display errors
*/
function sieveManagement($config,$dn,$parent,$uattrib)
{
+ /* Use mail Acls here */
+ $ui = get_userinfo();
+ $acl= get_permissions ($ui->dn, $ui->subtreeACL);
+ $this->acl= get_module_permission($acl, "mailAccount", $ui->dn);
+
/* Check given parameter */
if(!isset($parent->$uattrib)){
trigger_error("Sieve Management implementation error. Parameter 4 must be part of the given parent element.");
}
/* remove script requested */
- if(chkacl($this->parent->acl,"sieveManagement") == "" && preg_match("/^delscript_/",$name) && $once && !$this->current_handler){
+ if(chkacl($this->acl,"sieveManagement") == "" && preg_match("/^delscript_/",$name) && $once && !$this->current_handler){
$script = preg_replace("/^delscript_/","",$name);
$script = preg_replace("/_(x|y)/","",$script);
$once = FALSE;
}
/* Activate script */
- if(chkacl($this->parent->acl,"sieveManagement") == "" && preg_match("/^active_script_/",$name) && $once && !$this->current_handler){
+ if(chkacl($this->acl,"sieveManagement") == "" && preg_match("/^active_script_/",$name) && $once && !$this->current_handler){
$script = preg_replace("/^active_script_/","",$name);
$script = preg_replace("/_(x|y)/","",$script);
$once = FALSE;
}
/* Remove confirmed */
- if(chkacl($this->parent->acl,"sieveManagement") == "" && isset($_POST['delete_script_confirm'])){
+ if(chkacl($this->acl,"sieveManagement") == "" && isset($_POST['delete_script_confirm'])){
$script = $this->scripts[$this->script_to_delete];
}
/* Save currently edited sieve script. */
- if(chkacl($this->parent->acl,"sieveManagement") == "" &&
+ if(chkacl($this->acl,"sieveManagement") == "" &&
isset($_POST['save_sieve_changes']) &&
is_object($this->current_handler)){
$chk = $this->current_handler->check();
}
}else{
foreach($chk as $msgs){
- print_red(sprintf(_("Please fix all errors before saving. Last error was : %s"),$msgs));
+ print_red(sprintf(_("Please fix all errors before saving. Last error was: %s"),$msgs));
}
}
}
if($file['size'] == 0){
print_red(_("Specified file seems to be empty."));
}elseif(!file_exists($file['tmp_name'])){
- print_red(_("Upload failed, somehow nothing was uploaded or the temporary file can't be accessed."));
+ print_red(_("Upload failed. The temporary file can't be accessed."));
}elseif(!is_readable ($file['tmp_name'])){
- print_red(sprintf(_("Can't open file '%s' to read uploaded file contents."),$file['tmp_name']));
+ print_red(sprintf(_("Can't open file '%s'."),$file['tmp_name']));
}else{
$field3 = array("string" => $script['MSG']);
$field4 = array("string" => _("Script length").": ".strlen($script['SCRIPT']));
- if(chkacl($this->parent->acl,"sieveManagement") == ""){
+ if(chkacl($this->acl,"sieveManagement") == ""){
$del = "<input type='image' name='delscript_".$key."' src='images/edittrash.png'
title='"._("Remove script")."'>";
}else{
$del = "<img src='images/empty' alt=' '>";
}
- if($active || $script['IS_NEW'] || chkacl($this->parent->acl,"sieveManagement") != ""){
+ if($active || $script['IS_NEW'] || chkacl($this->acl,"sieveManagement") != ""){
$activate = "<img src='images/empty' alt=' '>";
}else{
$activate = "<input type='image' name='active_script_".$key."' src='images/true.png'
}
return(FALSE);
}
- if(!is_object($this->current_handler) || get_class($this->current_handler) != "My_Parser"){
+
+ if(!is_object($this->current_handler) || !preg_match("/My_Parser/i",get_class($this->current_handler))){
trigger_error("Can't add new element, there is no valid script editor opened.");
return(FALSE);
}
$ele[] = new sieve_block_end(NULL,preg_replace("/[^0-9]/","",microtime()),$parent);
$ele[] = new $this->add_element_type(NULL, preg_replace("/[^0-9]/","",microtime()),$parent);
$ele[] = new sieve_block_start(NULL,preg_replace("/[^0-9]/","",microtime()),$parent);
+ }elseif($this->add_element_type == "sieve_vacation"){
+
+ /* Automatically add addresses to sieve alternate addresses */
+ $data = NULL;
+ $tmp = new $this->add_element_type($data, preg_replace("/[^0-9]/","",microtime()),$parent);
+ if(isset($this->parent->gosaMailAlternateAddress)){
+ $tmp->addresses = $this->parent->gosaMailAlternateAddress;
+ }
+ $ele[] = $tmp ;
}else{
$ele[] = new $this->add_element_type(NULL, preg_replace("/[^0-9]/","",microtime()),$parent);
}
+ /* PHP 4 automatic requirement add */
+ if(isset($_SESSION['add_require']) && count($_SESSION['add_require'])){
+ foreach($_SESSION['add_require'] as $reg){
+ $this->current_handler->tree_->add_require($reg,true);
+ }
+ }
+
/* Get index of the element identified by object_id == $id;
*/
$index = -1;