| ";
+
+if ( $pxecn != "" && $pxecn != "Hier_PXE_NAME_eintragen" && $rbsDN != "none" ){
+
+ $pxecn = "PXE_".$pxecn;
+ # Formulareingaben anpassen
+ $exppxe = explode(" ",$pxecn);
+ foreach ($exppxe as $word){$expuc[] = ucfirst($word);}
+ $pxecn = implode(" ",$expuc);
+ $pxecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $pxecn);
+
+ $pxetimerange = "";
+ $nomac = 0;
+
+ if (count($targets) != 0){
+ foreach ($targets as $targetDN){
+
+ $exptargetdn = ldap_explode_dn($targetDN, 1);
+ $targetcn = $exptargetdn[0];
+ $targettype = $exptargetdn[1];
+
+ # falls Target keine MAC hat dann kann keine PXE angelegt werden
+ # jetzt schon vorher bei der Zielobjektauswahl abgefangen
+ if ($targettype == "computers"){
+ $macdata = get_node_data($targetDN, array("hwaddress"));
+ if ($macdata['hwaddress'] == ""){
+ $nomac = 1;
+ echo "Für den Ziel-Rechner ist keine MAC Adresse eingetragen + Das PXE Bootmenü wird nicht angelegt. + + Tragen Sie zuerst eine MAC ein! "; + } + } + if ($targettype == "groups"){ + $members = get_node_data($targetDN, array("member")); + if (count($members) > 1){ + foreach ($members['member'] as $hostDN){ + $macdata = get_node_data($hostDN, array("hwaddress","hostname")); + if ($macdata['hwaddress'] == ""){ + $nomac = 1; + echo "Für den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen + Das PXE Bootmenü für die Gruppe wird nicht angelegt. + + Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein! "; + } + } + } + if (count($members) == 1){ + $macdata = get_node_data($members['member'], array("hwaddress")); + if ($macdata['hwaddress'] == ""){ + $nomac = 1; + echo "Für den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen + Das PXE Bootmenü für die Gruppe wird nicht angelegt. + + Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein! "; + } + } + } + + # Check auf eindeutigen PXE-Namen (könnte man erweitern auf kompletten RBS) + $brothers = get_pxeconfigs($targetDN,array("cn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['cn'] == $pxecn ){ + $mesg = "Es existiert bereits ein PXE Boot Menü mit dem eingegebenen Namen! + Bitte geben Sie einen anderen Namen ein. "; + $url = "new_pxe.php?pxecn=".$get_pxecn."&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr; + $brother = 1; + break; + } + } + if ($brother == 0 && $nomac == 0){ + + if ( $pxeday != "" && $pxebeg != "" && $pxeend != "" && $pxebeg <= $pxeend ){ + + # TimeRange Syntax checken + $syntax = new Syntaxcheck; + if ($syntax->check_timerange_syntax($pxeday,$pxebeg,$pxeend)){ + + # in Grossbuchstaben + if (preg_match("/([a-z]+)/",$pxeday)){$pxeday = strtoupper($pxeday);} + if (preg_match("/([a-z]+)/",$pxebeg)){$pxebeg = strtoupper($pxebeg);} + if (preg_match("/([a-z]+)/",$pxeend)){$pxeend = strtoupper($pxeend);} + + # führende Nullen weg + $pxebeg = preg_replace ( '/0([0-9])/', '$1', $pxebeg); + $pxeend = preg_replace ( '/0([0-9])/', '$1', $pxeend); + + print_r($nodeDN); + # TimeRange auf Überschneidung mit vorhandenen checken + if(check_timerange_pxe($pxeday,$pxebeg,$pxeend,$targetDN,"")){ + $pxetimerange = $pxeday."_".$pxebeg."_".$pxeend; + } + else{ + $mesg = "Es existiert bereits ein PXE Boot Menü, das sich mit der eingegebenen Time Range + überschneidet! + Das neue PXE Boot Menü wird ohne Time Range angelegt. + Bitte geben Sie diese anschließend ein. "; + } + } + else{ + $mesg = "Falsche Syntax in der Time-Range-Eingabe! Das neue PXE Boot Menü wird ohne Time Range angelegt. + Bitte geben Sie diese anschließend ein. "; + } + } + else{ + $mesg = "Keine vollständige Time-Range-Eingabe! Das neue PXE Boot Menü wird ohne Time Range angelegt. + Bitte geben Sie diese anschließend ein. "; + } + + $pxeDN = "cn=".$pxecn.",".$targetDN; + + + # PXE Dateinamen bestimmen, MAC(s) + $filenames = array(); + if ($targettype == "computers"){ + $macdata = get_node_data($targetDN, array("hwaddress")); + $filenames[] = "01-".$macdata['hwaddress']; + } + if ($targettype == "groups"){ + $members = get_node_data($targetDN, array("member")); + if (count($members) > 1){ + foreach ($members['member'] as $hostDN){ + $macdata = get_node_data($hostDN, array("hwaddress")); + $filenames[] = "01-".$macdata['hwaddress']; + } + } + if (count($members) == 1){ + $macdata = get_node_data($members['member'], array("hwaddress")); + $filenames[] = "01-".$macdata['hwaddress']; + } + } + echo "filenames: ";print_r($filenames); echo " "; + #$ldapuri = LDAP_HOST."/dn=cn=computers,".$auDN; + + # rbsDN bestimmen + $rbs = get_node_data($targetDN,array("hlprbservice")); + $rbsDN = $rbs['hlprbservice']; + print_r($rbsDN); + + /*if (add_pxe($pxeDN,$pxecn,$rbsDN,$pxetimerange,$pxeattribs,$filenames,$conffile)){ + $mesg .= " Neues PXE Boot Menü erfolgreich angelegt "; + if ($targettype == "computers"){ + $mnr=1; + } + if ($targettype == "groups"){ + $mnr=2; + } + $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr; + } + else{ + $mesg .= " Fehler beim anlegen des PXE Boot Menüs! "; + }*/ + } + } + } + else{ + $mesg .= " Sie haben kein Ziel angegeben! "; + } +} + + +elseif ( $pxecn == "" || $pxecn == "Hier_PXE_NAME_eintragen" || $rbsDN == "none" ){ + + $mesg = "Sie haben den Namen des neuen PXE Boot Menüs nicht angegeben oder den + Remote Boot Dienst nicht ausgewählt. Beide sind aber ein notwendige Attribute. + Bitte geben Sie sie an. "; + $url = "new_pxe.php?pxecn=Hier_PXE_NAME_eintragen&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr; +} + + + +$mesg .= " Sie werden automatisch auf die vorherige Seite zurückgeleitet. + Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo " |