Code

Updated preg_matches
[gosa.git] / plugins / admin / fai / class_faiSummaryTab.inc
index a2c48016c881427b60fb6a5b4d53b9ef60bcf1be..3963f42cf1e210e2d496c437ad7a755ba7cf27f2 100644 (file)
@@ -55,7 +55,8 @@ class faiSummaryTab extends plugin{
     $this->Result = array();
     $_SESSION['faiSummaryTab']['UniqueID'] = 0; 
     $tmp = $this->getBranches();
-    
+   
     /* Get classes & release name 
        There are 2 different tabs which use the summary tab
        faiProfile / Workstations */
@@ -66,6 +67,7 @@ class faiSummaryTab extends plugin{
       /* Get Classes and release */
       $this->Classes = $this->parent->by_object['faiProfile']->FAIclasses;
       $str = preg_replace("/^.*ou=profiles,/","",$this->dn);
+
       if(isset($tmp[$str])){
         $this->Release = $tmp[$str];
       }
@@ -74,12 +76,20 @@ class faiSummaryTab extends plugin{
     }elseif(isset($this->parent->by_name['workstartup'])){
       $this->Classes = $this->parent->by_object['workstartup']->FAIclass;
       $this->Release = $this->parent->by_object['workstartup']->FAIrelease;
+
+      /* Append workstation class && LAST */
+      if(isset($this->parent->by_object['workgeneric']->cn)){
+        $this->Classes[] = $this->parent->by_object['workgeneric']->cn;
+      }
       $tmp = array_flip($tmp);
       if(!isset($tmp[$this->Release])) {
         $this->Release = "";
       }
     }
 
+    $this->Classes[] = "LAST";
+
     /* Set all available releases */
     $this->Releases = array_flip($this->getBranches());
     $this->usedClasses = array();
@@ -133,21 +143,17 @@ class faiSummaryTab extends plugin{
   }
 
 
-  /* returns an array with all possibly release types */
-  function getBranches($base = false,$prefix = "")
+  function getBranches()
   {
-    $ret = array("main"=>"/");
+    $dn   = $this->config->current['BASE'];
     $ldap = $this->config->get_ldap_link();
-    $ldap->cd($this->config->current['BASE']);
-    if(!$base){
-      $base= "ou=fai,ou=configs,ou=systems,".$_SESSION['CurrentMainBase'];
-    }
-    $ldap->cd($base);
-    $ldap->ls("(objectClass=FAIbranch)",$base);
+    $ldap->cd($dn);
+    $ldap->search("(&(objectClass=organizationalUnit)(objectClass=FAIbranch))",array("ou","cn","dn"));
+    $ret = array("main"=>"/");
     while($attrs = $ldap->fetch()){
-      if((isset($attrs['ou']))&&($attrs['dn']!=$base)){
-        $ret[$attrs['dn']]= $prefix.$attrs['ou'][0];
-        $ret = array_merge($ret,$this->getBranches($attrs['dn'],"".$prefix.$attrs['ou'][0]."/"));
+      if(preg_match("/ou=fai,/",$attrs['dn'])){
+        $name = convert_department_dn(preg_replace("/,ou=fai,.*$/","",$attrs['dn']));
+        $ret[$attrs['dn']] = $name;
       }
     }
     return($ret);
@@ -189,7 +195,7 @@ class faiSummaryTab extends plugin{
   function createSummary($data)
   {
     /* Don't generate any output, if there is no result */ 
-    $str ="<table style='width:100%;background:#F5F5F5;'> ";
+    $str ="<table cellspacing=0 cellpadding=2 style='width:100%;background:#F5F5F5;'> ";
     if(!count($this->Result)){
       $str.="<tr><td>"; 
       $str.= (_("This object has no FAI classes assigned."));
@@ -279,7 +285,10 @@ class faiSummaryTab extends plugin{
             if(isset($data['description'][0])){
               $str .= " [".$data['description'][0]."] ";
             }
-            $str .=" = '".$data['FAIvariableContent'][0]."'";
+            /* Only display FAIvariableContent if description dosn't contain [*] */ 
+            if(isset($data['description'][0]) && !preg_match("#\[\*\]#",$data['description'][0])){
+              $str .=" = '".$data['FAIvariableContent'][0]."'";
+            }
             $str .= "</td><td><i>".$data['CLASS']."</i>";
             $str .="</td></tr>";
           }