Code

Made auth_mail a boolean value.
[gosa.git] / include / sieve / class_sieveManagement.inc
index 6ac3c6ee5237fc2230de1928526b45fa78c4eec2..76c5df39501b40eb4f46f201a18c16d255fc38d1 100644 (file)
@@ -54,12 +54,18 @@ class sieveManagement extends plugin
    *  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.");
@@ -280,7 +286,7 @@ class sieveManagement extends plugin
       }
 
       /* 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;
@@ -288,7 +294,7 @@ class sieveManagement extends plugin
       }
 
       /* 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;
@@ -333,7 +339,7 @@ class sieveManagement extends plugin
     }
 
     /* 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];
 
@@ -382,7 +388,7 @@ class sieveManagement extends plugin
     }
 
     /* 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();
@@ -406,7 +412,7 @@ class sieveManagement extends plugin
         }
       }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));
         }
       }
     }
@@ -435,9 +441,9 @@ class sieveManagement extends plugin
           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{
             
             
@@ -646,14 +652,14 @@ class sieveManagement extends plugin
       $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'
@@ -709,7 +715,8 @@ class sieveManagement extends plugin
       }
       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);
     }
@@ -796,10 +803,26 @@ class sieveManagement extends plugin
       $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;