Code

Updated FAI template entry.
[gosa.git] / gosa-plugins / fai / admin / fai / class_faiManagement.inc
index 57859e88fc21e902383c6b4e4397de6c40c1ccc6..e5f1bd8c6a3287afc75c055bbf8754e2bed563e2 100644 (file)
@@ -51,6 +51,7 @@ class faiManagement extends plugin
   var $allow_freeze_object_attach = TRUE;
 
   var $no_save;
+  var $acl_base     ="";
   var $fai_base     ="";
   var $fai_release  ="";
 
@@ -81,7 +82,9 @@ class faiManagement extends plugin
       $this->CopyPasteHandler= new CopyPasteHandler($this->config);
     }
 
-    /* Set default release */
+    /* Set default release 
+     */
+    $this->acl_base = $this->config->current['BASE'];
     $this->fai_base = get_ou("faiBaseRDN").$this->config->current['BASE'];
 
     if(!session::is_set("fai_filter")){
@@ -318,7 +321,7 @@ class faiManagement extends plugin
 
                                /* Lock the current entry, so nobody will edit it during deletion */
                                add_lock ($this->dn, $this->ui->dn);
-                               $smarty->assign("warning",msgPool::deleteInfo(@LDAP::fix($this->dn),_("FAI object")));
+                               $smarty->assign("warning",msgPool::deleteInfo(LDAP::fix($this->dn),_("FAI object")));
         $smarty->assign("multiple", false);
                                return($smarty->fetch(get_template_path('remove.tpl', TRUE)));
                        } else {
@@ -363,7 +366,7 @@ class faiManagement extends plugin
           $dns_names = array();
           foreach($this->dns as $dn){
             add_lock ($dn, $this->ui->dn);
-            $dns_names[] = @LDAP::fix($dn);
+            $dns_names[] = LDAP::fix($dn);
           }
 
           /* Lock the current entry, so nobody will edit it during deletion */
@@ -448,7 +451,7 @@ class faiManagement extends plugin
       Delete confirmed 
      ****************/
 
-               /* Deltetion was confirmed, so delete this entry
+               /* Deletion was confirmed, so delete this entry
      */
     if (isset($_POST['delete_terminal_confirm'])){
 
@@ -538,9 +541,9 @@ class faiManagement extends plugin
       if("" != $this->config->search("faiManagement", "POSTREMOVE",array('menu','tabs'))){
         /* Load permissions for selected 'dn' and check if
            we're allowed to remove this 'dn' */
-        if($this->acl_is_removeable()){
+        if(preg_match("/d/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
           $smarty->assign("release_hidden",base64_encode($this->fai_release));
-          $smarty->assign("info", msgPool::deleteInfo(@LDAP::fix($this->fai_release),_("FAI branch/freeze")));
+          $smarty->assign("info", msgPool::deleteInfo(LDAP::fix($this->fai_release),_("FAI branch/freeze")));
           return($smarty->fetch(get_template_path('remove_branch.tpl',TRUE)));
         } else {
           msg_dialog::display(_("Permission error"), _("You have no permission to delete this release!"), ERROR_DIALOG);
@@ -571,14 +574,14 @@ class faiManagement extends plugin
 
           $br = $this->getBranches();
 
-          if(isset($br[$bb]) && $this->acl_is_removeable()){
+          if(isset($br[$bb]) && preg_match("/d/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
             $name = $br[$bb];
 
             $ldap->cd($bb);
             $ldap->recursive_remove();
-            $ldap->cd(preg_replace('/,'.normalizePreg(get_ou('faiBaseRDN')).'/', ','.get_ou('applicationRDN'), $bb));
+            $ldap->cd(preg_replace('/,'.preg_quote(get_ou('faiBaseRDN'), '/').'/', ','.get_ou('applicationRDN'), $bb));
             $ldap->recursive_remove();
-            $ldap->cd(preg_replace('/,'.normalizePreg(get_ou('faiBaseRDN')).'/', ','.get_ou('mimetypeRDN'), $bb));
+            $ldap->cd(preg_replace('/,'.preg_quote(get_ou('faiBaseRDN'), '/').'/', ','.get_ou('mimetypeRDN'), $bb));
             $ldap->recursive_remove();
 
             /* Search for all groups with configured application menus.
@@ -586,7 +589,7 @@ class faiManagement extends plugin
               - The search für menu configuration for the specified release and collect all those dns.
               - Remove entries
              */
-            $release_ou = preg_replace("/".normalizePreg(get_ou("faiBaseRDN")).".*$/","",$bb);
+            $release_ou = preg_replace("/".preg_quote(get_ou("faiBaseRDN"), '/').".*$/","",$bb);
             $ldap->cd($this->config->current['BASE']);
             $ldap->search("(objectClass=posixGroup)",array("dn"));
           
@@ -604,7 +607,7 @@ class faiManagement extends plugin
               $ldap->cd($dn);
               $ldap->search("(objectClass=FAIbranch)",array("dn"));
               while($attrs = $ldap->fetch()){
-                if(preg_match("/^".normalizePreg($release_ou)."/",$attrs['dn'])){
+                if(preg_match("/^".preg_quote($release_ou, '/')."/",$attrs['dn'])){
                   $dns[] = $attrs['dn'];
                 }
               }
@@ -689,7 +692,7 @@ class faiManagement extends plugin
 
     if(isset($_GET['PerformBranch'])){
     
-      if(!$this->acl_is_createable()){
+      if(!preg_match("/c/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
         msg_dialog::display(_("Permission error"), msgPool::permCreate(_("Branch")), ERROR_DIALOG);
       }else{
 
@@ -728,11 +731,11 @@ class faiManagement extends plugin
           }
         }
 
-        $appsrc = preg_replace("/".normalizePreg(get_ou('faiBaseRDN'))."/",get_ou('applicationRDN'),$baseToUse); 
-        $appdst = preg_replace("/".normalizePreg(get_ou('faiBaseRDN'))."/",get_ou('applicationRDN'),"ou=".$name.",".$baseToUse) ; 
+        $appsrc = preg_replace("/".preg_quote(get_ou('faiBaseRDN'), '/')."/",get_ou('applicationRDN'),$baseToUse); 
+        $appdst = preg_replace("/".preg_quote(get_ou('faiBaseRDN'), '/')."/",get_ou('applicationRDN'),"ou=".$name.",".$baseToUse) ; 
 
-        $mimesrc = preg_replace("/".normalizePreg(get_ou('faiBaseRDN'))."/",get_ou('mimetypeRDN'),$baseToUse); 
-        $mimedst = preg_replace("/".normalizePreg(get_ou('faiBaseRDN'))."/",get_ou('mimetypeRDN'),"ou=".$name.",".$baseToUse) ; 
+        $mimesrc = preg_replace("/".preg_quote(get_ou('faiBaseRDN'), '/')."/",get_ou('mimetypeRDN'),$baseToUse); 
+        $mimedst = preg_replace("/".preg_quote(get_ou('faiBaseRDN'), '/')."/",get_ou('mimetypeRDN'),"ou=".$name.",".$baseToUse) ; 
 
         /* Check if source depeartments exist */
         foreach(array($baseToUse,$appsrc,$mimesrc) as $dep){
@@ -799,6 +802,7 @@ class faiManagement extends plugin
 
         echo "<div style='width:100%;text-align:right;'><form name='form' method='post' action='?plug=".$_GET['plug']."' target='_parent'>
           <br><input type='submit' name='CloseIFrame' value='"._("Continue")."'>
+          <input type='hidden' name='php_c_check' value='1'>
           </form></div>";
 
         echo "<script language=\"javascript\" type=\"text/javascript\">scrollDown2();</script>" ;
@@ -850,8 +854,8 @@ class faiManagement extends plugin
      */
     if("" != $this->config->search("faiManagement", "POSTCREATE",array('menu','tabs'))){
       if(($s_action == "branch_branch")||($this->dispNewBranch)){
-        if(!$this->acl_is_createable()){
-        msg_dialog::display(_("Permission error"), msgPool::permCreate(_("Branch")), ERROR_DIALOG);
+        if(!preg_match("/c/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
+          msg_dialog::display(_("Permission error"), msgPool::permCreate(_("Branch")), ERROR_DIALOG);
         }else{
           $this->dispNewBranch=true;
           $smarty->assign("iframe",false);
@@ -871,7 +875,7 @@ class faiManagement extends plugin
      */
     if("" != $this->config->search("faiManagement", "POSTCREATE",array('menu','tabs'))){
       if(($s_action == "freeze_branch")||($this->dispNewFreeze)){
-        if(!$this->acl_is_createable()){
+        if(!preg_match("/c/",$this->ui->get_permissions($this->acl_base,"fai/faiManagement"))){
           msg_dialog::display(_("Permission error"), msgPool::permCreate(_("Branch")), ERROR_DIALOG);
         }else{
           $this->dispNewFreeze = true;
@@ -901,7 +905,7 @@ class faiManagement extends plugin
                     "new_package"       =>  _("package list"));
 
     if(isset($types[$s_action])){
-      $acl = $this->ui->get_permissions($this->fai_base,"fai/".$type_acl_mapping[$types[$s_action]]);
+      $acl = $this->ui->get_permissions($this->acl_base,"fai/".$type_acl_mapping[$types[$s_action]]);
       if(preg_match("/c/",$acl)){
         $this->dialog = new askClassName($this->config,$this->dn,$this->ui,$types[$s_action]);
         $this->dialog->parent = &$this;
@@ -914,7 +918,7 @@ class faiManagement extends plugin
     if($s_action == "new_profile"){
       $this->dn = "new" ;
 
-      $acl = $this->ui->get_permissions($this->fai_base,"fai/faiProfile");
+      $acl = $this->ui->get_permissions($this->acl_base,"fai/faiProfile");
       if(preg_match("/c/",$acl)){
         $a_setup= $this->get_type(array("objectClass"=>array("FAIprofile")));
         $this->dialog = new $a_setup[0]($this->config,$this->config->data['TABS'][$a_setup[2]],$this->dn,"fai");
@@ -1130,7 +1134,7 @@ class faiManagement extends plugin
       }
     }
     $this->base = $base;
-    $this->set_acl_base($this->base);
+    $this->set_acl_base($this->acl_base);
 
     $this->lock_type = FAI::get_release_tag(FAI::get_release_dn($base));
 
@@ -1397,7 +1401,7 @@ class faiManagement extends plugin
 
     if($oc == "FAIprofile"){
       $f = "";
-      $ocs = array("FAItemplate","FAIhook","FAIpartitionTable","FAIpackageList","FAIscript","FAIvariable");
+      $ocs = array("FAIprofile","FAItemplate","FAIhook","FAIpartitionTable","FAIpackageList","FAIscript","FAIvariable");
       foreach($ocs as $oc){
         $f .= "(objectClass=".$oc.")";
       }