Code

Removed old menu parsing
[gosa.git] / include / class_mail-methods-kolab.inc
index 630a580007a98d24cd939915ee5b161401ed8668..9031196e98ad2535883807e3f5f869e0e482f226 100644 (file)
@@ -44,9 +44,6 @@ class mailMethodKolab extends mailMethodCyrus
     return (TRUE);
   }
 
-  function setSharedFolderPermissions($folder, $permissions)
-  {
-  }
 
   function deleteMailbox($folder)
   {
@@ -58,8 +55,18 @@ class mailMethodKolab extends mailMethodCyrus
   {
     /* Convert attributes and objectClasses */
     foreach ($this->attribute_map as $dest => $source){
+      /* Hickert 11.11.05 : Alternate email addresses were saved, but not displayed again.
+      if (isset($mailObject->attrs[$source])){
+        $mailObject->attrs[$dest]= $mailObject->attrs[$source];
+        unset ($mailObject->attrs[$source]);
+      */
+
       if (isset($mailObject->attrs[$source])){
+        unset($mailObject->attrs[$source]['count']);
         $mailObject->attrs[$dest]= $mailObject->attrs[$source];
+        $mailObject->$dest=        $mailObject->attrs[$source];
+
+        unset ($mailObject->$dest['count']);
         unset ($mailObject->attrs[$source]);
       }
     }
@@ -85,15 +92,33 @@ class mailMethodKolab extends mailMethodCyrus
     }
     $objectclasses= array();
     foreach ($mailObject->attrs['objectClass'] as $oc){
-      if ($oc !=  'kolabInetOrgPerson'){
+      if ($oc !=  'kolabInetOrgPerson' && $oc !=  'kolabSharedFolder'){
         $objectclasses[]= $oc;
       }
     }
-
-    $mailObject->attrs['cyrus-userquota'] = ( $mailObject->gosaMailQuota/1024);
-
     $mailObject->attrs['objectClass']= $objectclasses;
-    $mailObject->attrs['objectClass'][]= 'kolabInetOrgPerson';
+    if (in_array("posixGroup", $mailObject->attrs['objectClass'])){
+      $mailObject->attrs['objectClass'][]= 'kolabSharedFolder';
+
+      /* Work on acl attribute */
+      $new_acl= array();
+      foreach ($mailObject->attrs['acl'] as $uacl){
+        list($user, $acl) = split(" ", $uacl);
+        if ($user != "%members%"){
+          $new_acl[$user]= $uacl;
+        } else {
+          foreach ($mailObject->members as $member){
+            $new_acl[$member]= "$member $acl";
+          }
+        }
+      }
+      $mailObject->attrs['acl']= array();
+      foreach ($new_acl as $key => $value){
+        $mailObject->attrs['acl'][]= $value;
+      }
+    } else {
+      $mailObject->attrs['objectClass'][]= 'kolabInetOrgPerson';
+    }
 
     /* Remove imap:// tagging */
     $mailObject->attrs['kolabHomeServer']= preg_replace('%imap://%', '', $mailObject->attrs['kolabHomeServer']);