Code

Prepared for multiple asterisk servers
[gosa.git] / plugins / admin / groups / class_groupMail.inc
index 13b378c3c2921ce70a42683ed5669132a354d7a3..b6c8c01f8ba1087bd481910f7fd340f7d0405371 100644 (file)
@@ -9,6 +9,7 @@ class mailgroup extends plugin
 
   var $uid                        = "";       // User id 
   var $cn                         = "";       // cn
+  var $orig_cn                    = "";       // cn
 
   var $method                     = "mailMethod"; // Used Mail method 
   var $mmethod                    = "";           // Contains the gosa.conf MAILMETHOD
@@ -54,7 +55,7 @@ class mailgroup extends plugin
       "acl","gosaSharedFolderTarget", "gosaVacationMessage");
 
   var $objectclasses= array("gosaMailAccount");
-
+  var $CopyPasteVars          = array("quotaUsage","imapacl");
 
   function mailgroup ($config, $dn= NULL, $ui= NULL)
   {
@@ -62,6 +63,8 @@ class mailgroup extends plugin
      */
     plugin::plugin($config, $dn);
 
+    $this->orig_cn = $this->cn;
+
     /* Set mailMethod to the one defined in gosa.conf 
      */
     if (isset($this->config->current['MAILMETHOD'])){
@@ -562,6 +565,13 @@ class mailgroup extends plugin
           $Dis = " disabled ";
         }
   
+        /* Reset given Acls to ensure that nobody can read username and acls if not allwoed */
+        if(!preg_match("/r/",$perm)){
+          $user = "";
+          $nr   = "none";
+          $key  = "none";  
+        }
+
         $tmp.= "<tr>  
                  <td>
                   <input name=\"user_$nr\" size=20 maxlength=60 value=\"$user\" ".$Dis.">
@@ -881,7 +891,7 @@ I: Only insider delivery */
     }
     $ldap->cd($this->config->current['BASE']);
     $ldap->search ("(&(!(objectClass=gosaUserTemplate))(objectClass=gosaMailAccount)(|(mail=".$this->mail.")(gosaMailAlternateAddress=".
-        $this->mail."))(!(uid=".$this->cn."))(!(cn=".$this->cn.")))");
+        $this->mail."))(!(uid=".$this->orig_cn."))(!(cn=".$this->orig_cn.")))");
     if ($ldap->count() != 0){
       $message[]= _("The primary address you've entered is already in use.");
     }
@@ -1047,6 +1057,15 @@ I: Only insider delivery */
   }
 
 
+  function PrepareForCopyPaste($source)
+  {
+    plugin::PrepareForCopyPaste($source);
+    /* Reset alternate mail addresses */
+    $this->gosaMailAlternateAddress = array();
+  }
+
+
   /* Return plugin informations for acl handling  */
   function plInfo()
   {