X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_systemManagement.inc;h=27a4e6e0f7686aa3b20d9ce46996a0ce0e5543eb;hb=c30fdf675865a86365275ed6fb9f8a0cc06e41af;hp=a039c2ecca8e3ef1f5715b2cb9340b44c47e326c;hpb=c7265e3d999c1299597fdddf1a7054b82d396ae1;p=gosa.git diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc index a039c2ecc..27a4e6e0f 100644 --- a/plugins/admin/systems/class_systemManagement.inc +++ b/plugins/admin/systems/class_systemManagement.inc @@ -226,66 +226,88 @@ class systems extends plugin Create FAI CD ... ********************/ if ($s_action=="gen_cd"){ -echo "ACL CHECK!"; $this->dn= $this->terminals[$s_entry]['dn']; $_SESSION['objectinfo']= $this->dn; return ($smarty->fetch(get_template_path('gencd.tpl', TRUE))); } - /* Start CD-Creation */ if (isset($_POST["cd_create"])){ -echo "ACL CHECK!"; - $smarty->assign("src", "?plug=".$_GET['plug']."&PerformIsoCreation"); + $smarty->assign("src", "?plug=".$_GET['plug']."&PerformIsoCreation"); return ($smarty->fetch(get_template_path('gencd_frame.tpl', TRUE))); } - + if ($this->dn != "" && isset($_GET['PerformIsoCreation'])){ -echo "ACL CHECK!"; + $return_button = "
+ + +
"; + + $dsc = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w")); + + /* Get and check command */ $command= search_config($this->config->data['TABS'], "workgeneric", "ISOCMD"); if (check_command($command)){ @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute"); - $dsc= array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w")); - echo ""; - echo ""; - echo ""; - echo "
";
-        $process= proc_open($command, $dsc, $pipes, '/tmp');
+        /* Print out html introduction */
+        echo '  
+                
+                  
+                    
+                    
+                    
+                  
+                  
+                  
';
+
+        /* Open process handle and check if it is a valid process */
+        $process= proc_open($command." '".$this->dn."'", $dsc, $pipes);
         if (is_resource($process)) {
           fclose($pipes[0]);
+
+          /* Print out returned lines && write JS to scroll down each line */
           while (!feof($pipes[1])){
-            echo fgets($pipes[1], 1024);
+            $cur_dat = fgets($pipes[1], 1024);
+            echo $cur_dat;
+            echo '' ;
             flush();
           }
         }
-        $buffer= stream_get_contents($pipes[2]);
+    
+        /* Get error string && close streams */
+        $buffer = "";
+        while (!feof($pipes[2])){
+          $buffer .= fgets($pipes[2],256);
+        }
+      
         fclose($pipes[1]);
         fclose($pipes[2]);
-        $ret= proc_close($process);
         echo "
"; - - if ($ret == 0){ - echo "hier der runterladen button"; - } else { + + /* Check return code */ + $ret= proc_close($process); + if ($ret != 0){ echo "

"._("Creating the image failed. Please see the report below.")."

"; echo "
$buffer
"; } + echo $return_button."
"; + } else { $tmp= "

".sprintf(_("Command '%s', specified for ISO creation doesn't seem to exist."), $command)."

"; echo $tmp; } - echo ""; - echo ""; - + /* Scroll down completly */ + echo '' ; + echo ''; + flush(); exit; } - /******************** Change password ... ********************/ @@ -634,7 +656,7 @@ echo "ACL CHECK!"; $responsible= array(); foreach ($this->config->departments as $key => $value){ if (get_module_permission(get_permissions ($value, $this->ui->subtreeACL), - "terminal", $value) == "#all#"){ + "systems", $value) != ""){ $responsible[$key]= $value; } } @@ -676,14 +698,14 @@ echo "ACL CHECK!"; if($this->DivListSystem->$checkBox){ if($this->DivListSystem->SubSearch){ if($oc['CLASS'] != ""){ - $filter = "(|(&".$userregex."(objectClass=".$oc['CLASS'].")(cn=".$this->DivListSystem->Regex.")))"; + $filter = "(&".$userregex."(objectClass=".$oc['CLASS'].")(cn=".$this->DivListSystem->Regex."))"; $res = array_merge($res,get_list($filter,$this->ui->subtreeACL, $base, array("cn", "description", "macAddress", "objectClass", "sambaDomainName", "FAIstate"), GL_NONE | GL_SUBSEARCH | GL_SIZELIMIT)); } }else{ /* User filter? */ if($oc['CLASS'] != ""){ - $filter = "(|(&".$userregex."(objectClass=".$oc['CLASS'].")(cn=".$this->DivListSystem->Regex.")))"; + $filter = "(&".$userregex."(objectClass=".$oc['CLASS'].")(cn=".$this->DivListSystem->Regex."))"; $res = array_merge($res,get_list($filter,$this->ui->subtreeACL, $oc['TREE'].$base, array("cn", "description", "macAddress", "objectClass", "sambaDomainName", "FAIstate"), GL_NONE | GL_SIZELIMIT)); } @@ -720,6 +742,12 @@ echo "ACL CHECK!"; } } + /* Create a string containing the last part of the department. */ + $dn_name = preg_replace("#^([^/]+/)*#","",convert_department_dn(@LDAP::fix($tmp))); + if(empty($dn_name)){ + $dn_name = "/"; + } + /* Detect type of object and create an entry for $this->terminals */ $terminal = array(); if ((in_array ($tmp, $responsible)) || ($add != "")){ @@ -731,7 +759,7 @@ echo "ACL CHECK!"; } else { $terminal = $value; $terminal['type'] = "D"; - $terminal['message'] = _("Terminal template for"); + $terminal['message'] = _("Terminal template for")." '".$dn_name."' "; $terminal['location'] = array_search($tmp, $this->config->departments); } } elseif (in_array_ics('gotoWorkstation', $value["objectClass"])){ @@ -743,7 +771,7 @@ echo "ACL CHECK!"; $terminal = $value; $terminal['type'] = "D"; $terminal['location'] = array_search($tmp, $this->config->departments); - $terminal['message'] = _("Workstation template for"); + $terminal['message'] = _("Workstation template for")." '".$dn_name."' "; } if (isset($value["FAIstate"][0])){ $terminal['type']= $this->getState($terminal['type'], $value["FAIstate"][0]); @@ -872,12 +900,9 @@ echo "ACL CHECK!"; $type= 'R'.$type; break; case 'install': - $type= 'Y'.$type; - break; case 'sysinfo': - $type= 'Y'.$type; - break; case 'softupdate': + case 'scheduledupdate': $type= 'Y'.$type; break; }