Code

Updated table summary
[gosa.git] / gosa-plugins / fai / admin / fai / class_FAI.inc
index e6e191814e596b3526b6b555fe3791ef98acc9b3..b6ef2a6125cae94dd430be037d543df5d9b1cd45 100644 (file)
@@ -63,14 +63,14 @@ class FAI
       foreach($deps_to_search as $fai_base){
 
         /* Ldap search for fai classes specified in this release */
-        $attributes  = array("dn","objectClass","FAIstate","cn");
-        $res_tmp = get_list($filter,"fai",$fai_base,$attributes,GL_SUBSEARCH | GL_SIZELIMIT);
+        $attributes  = array("dn","objectClass","FAIstate","cn","FAIdiskType","FAIlvmDevice","FAIdiskOption");
+        $res_tmp = get_list($filter,"fai",$fai_base,$attributes,GL_SUBSEARCH);
 
         /* check the returned objects, and add/replace them in our return variable */
         foreach($res_tmp as $attr){
 
           $buffer = array();
-          $name = preg_replace("/".normalizePreg($release)."/i","",$attr['dn']);
+          $name = preg_replace("/".preg_quote($release, '/')."/i","",$attr['dn']);
 
           if(isset($attr['FAIstate'][0])){
             if(preg_match("/removed$/",$attr['FAIstate'][0])){
@@ -83,7 +83,7 @@ class FAI
 
           /* Seems to be an inherited class, apply current FAIstate to this classes 
            */
-          if(!preg_match("/".normalizePreg($base_release)."$/i",$attr['dn'])){
+          if(!preg_match("/".preg_quote($base_release, '/')."$/i",$attr['dn'])){
             $buffer['FAIstate'] = $FAIstate; 
           }else{
 
@@ -97,6 +97,21 @@ class FAI
             }
           }
 
+          if(isset($attr['FAIdiskType'])){
+            $buffer['FAIdiskType'] = $attr['FAIdiskType'][0];
+          } else {
+            $buffer['FAIdiskType'] = "old";
+          }
+
+          if(isset($attr['FAIdiskOption'])){
+            $buffer['FAIdiskOption'] = $attr['FAIdiskOption'];
+          } else {
+            $buffer['FAIdiskOption'] = null;
+          }
+          if(isset($attr['FAIlvmDevice'])){
+            $buffer['FAIlvmDevice'] = $attr['FAIlvmDevice'];
+          }
+
           /* In detailed mode are some additonal informations visible */
           if($detailed){
 
@@ -151,7 +166,7 @@ class FAI
   {
     global $config;
 
-    if(!preg_match("/".normalizePreg(get_ou('faiBaseRDN'))."/",$dn)){
+    if(!preg_match("/".preg_quote(get_ou('faiBaseRDN'), '/')."/i",$dn)){
       $base = get_ou('faiBaseRDN').$dn;
     }else{
       $base = $dn;
@@ -163,7 +178,7 @@ class FAI
     $ldap->search("(objectClass=FAIbranch)",array("ou","dn"));
     while($attrs = $ldap->fetch()){
       if($appendedName){
-        $res[$attrs['dn']] = convert_department_dn(preg_replace("/,".normalizePreg(get_ou('faiBaseRDN')).".*$/","",$attrs['dn']));
+        $res[$attrs['dn']] = convert_department_dn(preg_replace("/,".preg_quote(get_ou('faiBaseRDN'), '/').".*$/i","",$attrs['dn']));
       }else{
         $res[$attrs['dn']] = $attrs['ou'][0];
       }
@@ -207,7 +222,7 @@ class FAI
 
       /* Dont't try to modify non FAIclasses  
        */
-      if(!preg_match("/[^,]+,".normalizePreg(get_ou("faiBaseRDN"))."/",$obj_dn)){
+      if(!preg_match("/[^,]+,".preg_quote(get_ou("faiBaseRDN"), '/')."/i",$obj_dn)){
         trigger_error("PLEASE check fai class handling in ".__LINE__." -> ".__FILE__);        
         echo "<br>-->".$Current_DN."<br>";
         echo "<br>-->".$obj_dn."<br>";
@@ -228,8 +243,7 @@ class FAI
           $classes = FAI::get_all_objects_for_given_base(FAI::get_release_dn($Current_DN),
               "(&(objectClass=FAIclass)(cn=".$cn."))"); 
 
-          /* Check if this is the last class with this name.
-           */
+          /* Check if this is the last class with this name */
           if(count($classes) == 1){
 
             /* Get all FAI Profiles 
@@ -247,8 +261,8 @@ class FAI
 
               /* Check if this Profile uses the source class ($cn)
                */
-              if(preg_match("/".normalizePreg($cn)."/",$attrs['FAIclass'])){
-                $attrs['FAIclass'] = preg_replace("/[ ]*".normalizePreg($cn)."[ ]*/i"," ",$attrs['FAIclass']);
+              if(preg_match("/".preg_quote($cn, '/')."/",$attrs['FAIclass'])){
+                $attrs['FAIclass'] = preg_replace("/[ ]*".preg_quote($cn, '/')."[ ]*/i"," ",$attrs['FAIclass']);
                 if(empty($attrs['FAIclass'])){
                   $attrs['FAIclass'] = array();
                 }
@@ -521,6 +535,13 @@ class FAI
                */ 
               $rTag = FAI::get_release_tag(FAI::get_release_dn($key));
               $parent_attrs['FAIstate'] = $rTag;
+
+              /* FAItemplateFile can be binary, therefore it needs to be fetched with
+               * $ldap->get_attribute */
+              if (isset($parent_attrs['FAItemplateFile'])) {
+                $parent_attrs['FAItemplateFile'] = $ldap->get_attribute($parent_obj, 'FAItemplateFile');
+              }
+
               FAI::save_FAI_object($key,$parent_attrs);
             }
           }
@@ -595,7 +616,7 @@ class FAI
 
           $buffer = array();
 #        $name = str_ireplace($release,"",$attr['dn']);
-          $name = preg_replace("/".normalizePreg($release)."/i","",$attr['dn']);
+          $name = preg_replace("/".preg_quote($release, '/')."/i","",$attr['dn']);
 
           if(isset($attr['FAIstate'][0])&&(preg_match("/removed$/",$attr['FAIstate'][0]))){
 
@@ -703,7 +724,7 @@ class FAI
 
     /* Get dn suffix. Example  "FAIvairableEntry=keksdose,FAIvariable=Keksregal," */
 #  $dn_suffix = str_ireplace($base_release,"",$dn);
-    $dn_suffix = preg_replace("/".normalizePreg($base_release)."/i","",$dn);
+    $dn_suffix = preg_replace("/".preg_quote($base_release, '/')."/i","",$dn);
 
     /* Check if given object also exists whitin one of these releases */
     foreach($sub_releases as $p_release => $name){
@@ -744,7 +765,7 @@ class FAI
 
     /* Get dn suffix. Example  "FAIvairableEntry=keksdose,FAIvariable=Keksregal," */
 #  $dn_suffix = str_ireplace($base_release,"",$dn);
-    $dn_suffix = preg_replace("/".normalizePreg($base_release)."/i","",$dn);
+    $dn_suffix = preg_replace("/".preg_quote($base_release, '/')."/i","",$dn);
 
     /* Check if given object also exists whitin one of these releases */
     foreach($previous_releases as $p_release){
@@ -768,7 +789,7 @@ class FAI
     $ret = array();
 
     /* Explode dns into pieces, to be able to build parent dns */
-    $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".normalizePreg(",".$config->current['BASE'])."/i","",$dn));
+    $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".preg_quote(",".$config->current['BASE'], '/')."/i","",$dn));
 
     if(!is_array($dns_to_check)){
       return;  
@@ -871,12 +892,12 @@ class FAI
     $start = microtime(TRUE);
     $source_release = trim($source_release,"/");
 
-    echo "<h2>".sprintf(_("Creating group application release for %s"),$destination_name)."</h2>";
+    echo "<h3>".sprintf(_("Creating group application release for %s"),$destination_name)."</h3>";
 
     $sub_releases = array();
     $source_dn = "";
     
-    $tmp = split("\/",$source_release);
+    $tmp = explode("/",$source_release);
     foreach($tmp as $part){
       if(empty($part)){
         continue;
@@ -902,7 +923,7 @@ class FAI
     $ldap->search("(objectClass=FAIbranch)",array("ou","FAIstate"));
     while($attrs = $ldap->fetch()){
       foreach($sub_releases as $sub_rel){
-        if(preg_match("/^".normalizePreg($sub_rel.get_ou('faiBaseRDN'))."/",$attrs['dn'])){
+        if(preg_match("/^".preg_quote($sub_rel.get_ou('faiBaseRDN'), '/')."/i",$attrs['dn'])){
           $f_releases[$sub_rel.get_ou('faiBaseRDN')] = $attrs;
         }
       }
@@ -979,7 +1000,7 @@ class FAI
     }else{
       $source_dns = array();
       foreach($g_releases as $dn => $data){
-        if(preg_match("/^".normalizePreg($source_dn)."/",$dn)){
+        if(preg_match("/^".preg_quote($source_dn, '/')."/",$dn)){
           $source_dns[$dn] = $data; 
         }
       }
@@ -992,7 +1013,7 @@ class FAI
       $ldap->cd($dn);
       $ldap->ls("(|(objectClass=gotoSubmenuEntry)(objectClass=gotoMenuEntry))",$dn,array("dn"));
       while($attrs = $ldap->fetch()){
-        $destination = preg_replace("/".normalizePreg($dn)."$/","ou=".$destination_name.",".$dn,$attrs['dn']);
+        $destination = preg_replace("/".preg_quote($dn, '/')."$/","ou=".$destination_name.",".$dn,$attrs['dn']);
         $to_copy[$attrs['dn']] = $destination;
       }
     }
@@ -1039,12 +1060,12 @@ class FAI
     /* Display current action information.
      */
     if($is_first){
-      echo "<h2>".sprintf(_("Creating copy of %s"),"<i>".LDAP::fix($sourcedn)."</i>")."</h2>";
+      echo "<h3>".sprintf(_("Creating copy of %s"),"<i>".LDAP::fix($sourcedn)."</i>")."</h3>";
     }else{
       if(preg_match("/^ou=/",$sourcedn)){
         echo "<h3>"._("Processing")." <i>".LDAP::fix($destinationdn)."</i></h3>";
       }else{
-        $tmp = split(",",$sourcedn);
+        $tmp = explode(",",$sourcedn);
         echo "&nbsp;<b>"._("Object").":</b> ";
         $deststr = LDAP::fix($destinationdn);
         if(strlen($deststr) > 96){
@@ -1186,7 +1207,7 @@ class FAI
       }
     }
     if($is_first){
-      echo "<p class='seperator'>&nbsp;</p>";
+      echo "<hr>";
     }
   }
 
@@ -1200,7 +1221,7 @@ class FAI
     $ldap->cd($config->current['BASE']);
 
     /* Split dn into pices */ 
-    $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".normalizePreg(",".$config->current['BASE'])."/i","",$Current_DN));
+    $dns_to_check = gosa_ldap_explode_dn(preg_replace("/".preg_quote(",".$config->current['BASE'], '/')."/i","",$Current_DN));
 
     if(!is_array($dns_to_check)){
       return;