X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_systemManagement.inc;h=a039c2ecca8e3ef1f5715b2cb9340b44c47e326c;hb=b9a665f8e5359cbfdf540f344f0419668521027f;hp=5cff78e0a4f81cb594288fa5ad7a265825caf2b6;hpb=4404c6449ba2a19729f44f8384910852afecb3b7;p=gosa.git diff --git a/plugins/admin/systems/class_systemManagement.inc b/plugins/admin/systems/class_systemManagement.inc index 5cff78e0a..a039c2ecc 100644 --- a/plugins/admin/systems/class_systemManagement.inc +++ b/plugins/admin/systems/class_systemManagement.inc @@ -83,6 +83,9 @@ class systems extends plugin }elseif(preg_match("/user_setpwd_.*/i",$key)){ $s_action="change_pw"; $s_entry = preg_replace("/user_setpwd_/i","",$key); + }elseif(preg_match("/gen_cd_.*/i",$key)){ + $s_action="gen_cd"; + $s_entry = preg_replace("/gen_cd_/i","",$key); }elseif(preg_match("/newsystem_.*/i",$key)){ $s_action="newsystem"; $s_entry = preg_replace("/newsystem_/i","",$key); @@ -125,6 +128,12 @@ class systems extends plugin /* Create new default terminal * Or create specified object of selected system type, from given incoming object */ + + $save_object_directly = false; + if(($s_action == "SelectedSystemType") && (isset($_POST['ObjectGroup']) && ($_POST['ObjectGroup'] != "none"))){ + $save_object_directly = true; + } + if (isset($_POST['create_system'])||$s_action=="newsystem"||$s_action == "SelectedSystemType") { /* If the current entry is an incoming object @@ -213,6 +222,69 @@ 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"); + return ($smarty->fetch(get_template_path('gencd_frame.tpl', TRUE))); + } + + if ($this->dn != "" && isset($_GET['PerformIsoCreation'])){ +echo "ACL CHECK!"; + + $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');
+        if (is_resource($process)) {
+          fclose($pipes[0]);
+          while (!feof($pipes[1])){
+            echo fgets($pipes[1], 1024);
+            flush();
+          }
+        }
+        $buffer= stream_get_contents($pipes[2]);
+        fclose($pipes[1]);
+        fclose($pipes[2]);
+        $ret= proc_close($process);
+        echo "
"; + + if ($ret == 0){ + echo "hier der runterladen button"; + } else { + echo "

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

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

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

"; + echo $tmp; + } + + echo ""; + echo ""; + + exit; + } + + /******************** Change password ... @@ -386,16 +458,32 @@ class systems extends plugin /* Finish user edit is triggered by the tabulator dialog, so the user wants to save edited data. Check and save at this point. */ - if ((isset($_POST['edit_finish'])) && (isset($this->systab->config))){ + if ((isset($_POST['edit_finish'])) && (isset($this->systab->config)) || $save_object_directly){ /* Check tabs, will feed message array */ - $message= $this->systab->check(); + $message = array(); + if(!$save_object_directly){ + $message = $this->systab->check(); + }else{ + $found = false; + + /* Set gotoMode to active if we there was an ogroup selected . (save_object_directly) */ + foreach(array("workgeneric"=>"active","servgeneric"=>"active","termgeneric"=>"graphic") as $tab => $value){ + if(isset($this->systab->by_object[$tab]->gotoMode)) { + $found = true; + $this->systab->by_object[$tab]->gotoMode = $value; + } + } + if(!$found){ + print_red(sprintf(_("Can't set gotoMode to status 'avtice', the current object couldn't be identified."))); + } + } /* Save, or display error message? */ if (count($message) == 0){ /* Save terminal data to ldap */ - if(isset($_SESSION['SelectedSystemType']['ogroup'])){ + if(isset($_SESSION['SelectedSystemType']['ogroup']) && $_SESSION['SelectedSystemType']['ogroup'] != 'none'){ foreach (array("workservice", "termservice") as $cls){ if (isset($this->systab->by_object[$cls])){ $this->systab->by_object[$cls]->gotoXMouseport= ""; @@ -571,7 +659,7 @@ class systems extends plugin /* This array represents the combination between checkboxes and search filters */ $objs = array( "ShowServers" => array("CLASS" => "goServer" ,"TREE" => "ou=servers,ou=systems," ), - "ShowTerminals" => array("CLASS" => "goHard" ,"TREE" => "ou=terminals,ou=systems,"), + "ShowTerminals" => array("CLASS" => "gotoTerminal" ,"TREE" => "ou=terminals,ou=systems,"), "ShowPrinters" => array("CLASS" => "gotoPrinter" ,"TREE" => "ou=printers,ou=systems," ), "ShowDevices" => array("CLASS" => "ieee802Device" ,"TREE" => "ou=netdevices,ou=systems," ), "ShowPhones" => array("CLASS" => "goFonHardware" ,"TREE" => "ou=phones,ou=systems," ),