Code

Removed samba properties
[gosa.git] / plugins / admin / fai / class_faiPackage.inc
index 3c50c6929c87ad25781b8dd42aaf2a316e319084..f40c1eaea65bda8efa4fd7e2a31bbd13474a2c31 100644 (file)
@@ -100,45 +100,48 @@ class faiPackage extends plugin
       $this->usedPackages = array();
     }  
 
+    if($dn != "new"){
 
-    /* Create one filter with all package names, 
-       instead of calling $ldap->search for every single package 
-     */
-    $PackageFilter = "";
-    foreach($this->usedPackages as $name){
-      $PackageFilter .= "(FAIpackage=".$name.")";
-    }
-    $PackageFilter = "(&(objectClass=FAIdebconfInfo)(|".$PackageFilter."))";
-    
-    /* Search for configuration objects */ 
-    $ldap = $this->config->get_ldap_link();
-    $ldap->search($PackageFilter,array("FAIvariable","FAIvariableType","FAIvariableContent","FAIpackage","FAIdebianSection","FAIstate"));
+      /* Create one filter with all package names, 
+         instead of calling $ldap->search for every single package 
+       */
+      $PackageFilter = "";
+      foreach($this->usedPackages as $name){
+        $PackageFilter .= "(FAIpackage=".$name.")";
+      }
+      $PackageFilter = "(&(objectClass=FAIdebconfInfo)(|".$PackageFilter."))";
 
-    /* Walk through configurations and append them to our list of ConfiguredPackages */
-    while($attr = $ldap->fetch()){
+      /* Search for configuration objects */ 
+      $ldap = $this->config->get_ldap_link();
+      $ldap->cd($this->dn);
+      $ldap->search($PackageFilter,array("FAIvariable","FAIvariableType","FAIvariableContent","FAIpackage","FAIdebianSection","FAIstate"));
 
-      /* Skip objects, that are tagged as removed */
-      if(isset($object['FAIstate'][0])){
-        if(preg_match("/removed$/",$attr['FAIstate'][0])){
-          continue;
-        }
-      }
+      /* Walk through configurations and append them to our list of ConfiguredPackages */
+      while($attr = $ldap->fetch()){
 
-      $tmp =array(); 
-      $tmp['Name']  = $attr['FAIvariable'][0];
-      $tmp['Type']  = $attr['FAIvariableType'][0];
+        /* Skip objects, that are tagged as removed */
+        if(isset($object['FAIstate'][0])){
+          if(preg_match("/removed$/",$attr['FAIstate'][0])){
+            continue;
+          }
+        }
 
-      if (isset($attr['FAIvariableContent'][0])){
-        if(!in_array($attr['FAIvariableType'],array("multiselect"))){
-          $tmp['Value'] = $attr['FAIvariableContent'][0];
-        }else{
-          $content = array();        
-          unset($attr['FAIvariableContent']['count']);
-          foreach($attr['FAIvariableContent'] as $attr){
-            $tmp['Value'][] = $attr;
+        $tmp =array(); 
+        $tmp['Name']  = $attr['FAIvariable'][0];
+        $tmp['Type']  = $attr['FAIvariableType'][0];
+
+        if (isset($attr['FAIvariableContent'][0])){
+          if(!in_array($attr['FAIvariableType'],array("multiselect"))){
+            $tmp['Value'] = $attr['FAIvariableContent'][0];
+          }else{
+            $content = array();        
+            unset($attr['FAIvariableContent']['count']);
+            foreach($attr['FAIvariableContent'] as $attr){
+              $tmp['Value'][] = $attr;
+            }
           }
+          $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
         }
-        $this->ConfiguredPackages[$attr['FAIpackage'][0]][$attr['FAIvariable'][0]]=$tmp;
       }
     }
 
@@ -282,19 +285,20 @@ class faiPackage extends plugin
     }
 
     /* Configuration dialog open*/
-    if((isset($_POST['Markpkg']))&&(isset($_POST['usedPackages']))&&(!empty($_POST['usedPackages']))){
-      foreach($_POST['usedPackages'] as $pkg){
-        if (isset($this->usedPackages[$pkg])){
-          unset($this->usedPackages[$pkg]);
-          if (preg_match('/^-/', $pkg)){
-            $pkg= preg_replace('/^-/', '', $pkg);
-          } else {
-            $pkg= preg_replace('/^/', '-', $pkg);
+    if($this->FAIstate != "freeze"){
+      if((isset($_POST['Markpkg']))&&(isset($_POST['usedPackages']))&&(!empty($_POST['usedPackages']))){
+        foreach($_POST['usedPackages'] as $pkg){
+          if (isset($this->usedPackages[$pkg])){
+            unset($this->usedPackages[$pkg]);
+            if (preg_match('/^-/', $pkg)){
+              $pkg= preg_replace('/^-/', '', $pkg);
+            } else {
+              $pkg= preg_replace('/^/', '-', $pkg);
+            }
+            $this->usedPackages[$pkg]= $pkg;
           }
-          $this->usedPackages[$pkg]= $pkg;
         }
       }
-      print_a($this->usedPackages);
     }
 
     /* Save Configuration */
@@ -335,7 +339,6 @@ class faiPackage extends plugin
     $smarty->assign("section" ,$strsec);
     $smarty->assign("usedPackages",$this->printUsedPackages());
     $display.= $smarty->fetch(get_template_path('faiPackage.tpl', TRUE));
-    print_a($this->ConfiguredPackages);
     return($display);
   }
 
@@ -346,7 +349,8 @@ class faiPackage extends plugin
     $ldap = $this->config->get_ldap_link();
     $ldap->cd ($this->dn);
 
-    $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $this->dn);
+#    $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $this->dn);
+    $use_dn = preg_replace("/".normalizePreg(get_release_dn($this->dn))."/i", $_SESSION['faifilter']['branch'], $this->dn);
     if($_SESSION['faifilter']['branch'] == "main"){
       $use_dn = $this->dn;
     }
@@ -356,7 +360,8 @@ class faiPackage extends plugin
     foreach($this->ConfiguredPackages as $pkgname => $attrs){
       foreach($attrs as $name => $attr){
         $pkgdn =  "FAIvariable=".$name.",".$this->dn;
-        $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $pkgdn);
+#        $use_dn = str_ireplace( get_release_dn($this->dn), $_SESSION['faifilter']['branch'], $pkgdn);
+        $use_dn = preg_replace("/".normalizePreg(get_release_dn($this->dn))."/i", $_SESSION['faifilter']['branch'], $pkgdn);
         if($_SESSION['faifilter']['branch'] == "main"){
           $use_dn = $obj['dn'];
         }
@@ -423,13 +428,15 @@ class faiPackage extends plugin
         $dsc= "";
         if (preg_match('/^-/', $usedName)){
           $dsc= " - "._("Package marked for removal");
-          $usedName= preg_replace('/^-/', '! ', $usedName);
+          $usedName2= preg_replace('/^-/', '! ', $usedName);
+        }else{
+          $usedName2= $usedName;
         }
 
         if(isset($this->list[$usedName][1])){
-          $a_ret[$usedName] = $usedName." [".$this->list[$usedName][1]."]".$c_str.$dsc;
+          $a_ret[$usedName] = $usedName2." [".$this->list[$usedName][1]."]".$c_str.$dsc;
         }else{
-          $a_ret[$usedName] = $usedName.$c_str.$dsc;
+          $a_ret[$usedName] = $usedName2.$c_str.$dsc;
         }
       }
     }
@@ -532,6 +539,27 @@ class faiPackage extends plugin
       }
     }
   }
+
+  /* Return plugin informations for acl handling */ 
+  function plInfo()
+  {
+    return (array( 
+          "plShortName" => _("Package"),
+          "plDescription" => _("FAI Package list"),
+          "plSelfModify"  => FALSE,
+          "plDepends"     => array(),
+          "plPriority"    => 0,
+          "plSection"     => array("administration"),
+          "plCategory"    => array("fai"),
+          "plProvidedAcls" => array(
+            "cn"                => _("Name"),
+            "description"       => _("Description"),
+            "FAIpackage"        => _("Packages"),
+            "FAIdebianSection"  => _("Section"),
+            "FAIinstallMethod"  => _("Install Method"),
+            "FAIdebianRelease"  => _("Release"))
+          ));
+  }
 }
 
 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: