Code

fixed systemlist
[gosa.git] / plugins / admin / ogroups / tabs_ogroups.inc
index 96c190d349b6dd0946663efdd095434b8237855b..02593ea36d102044c33194248095011d75e9da6f 100644 (file)
@@ -20,17 +20,71 @@ class ogrouptabs extends tabs
           $this->by_object['termgroup']= new termgroup($this->config, $this->dn);
           $this->by_object['termgroup']->parent= &$this;
 
+          break;
+
+        case "U":
+          /* Append a PhoneQueue, if objectClass = goFonAccount */
+          $use = false;
+          foreach($this->by_object['ogroup']->memberList as $dn => $val){
+            if(in_array("goFonAccount",$val['objectClass'])){
+              $use = true; 
+            }
+          }
+    
+          /* We found goFonAccount in users objectClasses*/
+          if($use){
+            require_once("class_phonequeue.inc");
+            $this->by_name['phonequeue']= _("Phone queue");
+            $this->by_object['phonequeue']= new phonequeue($this->config, $this->dn);
+            $this->by_object['phonequeue']->parent= &$this;
+
+          } 
+          /* Add a user tab used for mail distribution lists */
+          if(isset($this->config->current['MAILMETHOD'])){
+            if (preg_match('/kolab/i', $this->config->current['MAILMETHOD'])){
+              require_once("class_mailogroup.inc");
+              $this->by_name['mailogroup']= _("Mail");
+              $this->by_object['mailogroup']= new mailogroup($this->config, $this->dn);
+              $this->by_object['mailogroup']->parent= &$this;
+            }
+          }
+
           break;
       }
     }
   }
 
+
   function check()
   {
     return (tabs::check(TRUE));
   }
 
 
+  function save_object($save_current= FALSE)
+  {
+    tabs::save_object($save_current);
+
+    /* Update reference, transfer variables */
+    $baseobject= $this->by_object['ogroup'];
+    foreach ($this->by_object as $name => $obj){
+
+      /* Don't touch base object */
+      if ($name != 'ogroup'){
+        $obj->parent= &$this;
+        $obj->uid= $baseobject->uid;
+        $obj->sn= $baseobject->uid;
+        $obj->givenName= $baseobject->uid;
+        $this->by_object[$name]= $obj;
+      }
+
+      /* Update parent in base object */
+      $this->by_object['ogroup']->parent= &$this;
+    }
+  }
+
+
   function save()
   {
     $baseobject= $this->by_object['ogroup'];
@@ -55,7 +109,8 @@ class ogrouptabs extends tabs
     if ($this->dn == "new"){
       $this->dn= 'cn='.$baseobject->cn.','.get_groups_ou().$baseobject->base;
     }
-    tabs::save(TRUE);
+
+    tabs::save();
   }
 
 }