";
##############################################
# MC CN (DN)
if ( $oldmccn == $mccn ){
# $mesg = "keine Aenderung "; } if ( $oldmccn != "" && $mccn != "" && $oldmccn != $mccn ){ echo "Machine Config Name aendern "; # hier noch Syntaxcheck # Formulareingaben anpassen $expmc = explode(" ",$mccn); foreach ($expmc as $word){$expuc[] = ucfirst($word);} $mccn = implode(" ",$expuc); $mccn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mccn); $newmcDN = "cn=".$mccn.",".$nodeDN; print_r($newmcDN); echo " "; if(modify_mc_dn($mcDN, $newmcDN)){ $mesg = "MC Name erfolgreich geändert "; $mcDN = $newmcDN; }else{ $mesg = "Fehler beim ändern des MC Name! "; } # newsubmenu holen... $url = "mcdef.php?dn=".$newmcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; } if ( $oldmccn != "" && $mccn == "" ){ echo "Gruppenname loeschen! Dieses ist Teil des DN, Sie werden die MachineConfig komplett löschen "; echo "Wollen Sie die MachineConfig ".$oldmccn." wirklich löschen? "; $seconds = 600; } ########################################## # bereits vorhandene TimeRange(s) bearbeiten $entrymodtr = array(); $modtr = 0; # TimeRanges zusammensetzen # $t = 0; # Laufvariable für $entrymodtr, da nicht jede Timerange ok sein muss for ($i=0; $i Bitte geben Sie eine andere Time Range ein. "; $entrymodtr ['timerange'][$i] = $oldmctimerange; } } else{ $mesg = "Falsche Syntax in der Timerange-Eingabe! Bitte geben Sie die erneut Time Range ein. "; $entrymodtr ['timerange'][$i] = $oldmctimerange; } } elseif ( $mcday[$i] == "" || $mcbeg[$i] == "" || $mcend[$i] == "" || $mcbeg[$i] > $mcend[$i]){ $mesg = "Sie haben die Time Range Nr.".$i." nicht vollständig angegeben. Diese ist aber ein notwendiges Attribut. Diese Time Range wird nicht bearbeitet. "; $entrymodtr ['timerange'][$i] = $oldmctimerange; } else{$entrymodtr ['timerange'][$i] = $oldmctimerange;} } # Ende for-Schleife für jede Timerange # jetzt noch alle gesammelten Änderungen Durchführen ... if ($modtr == 1){ # erst ändern echo "Ändern: "; print_r($entrymodtr); echo " "; if($result = ldap_mod_replace($ds,$mcDN,$entrymodtr)){ $mesg = "TimeRanges erfolgreich geändert "; }else{ $mesg = "Fehler beim ändern der TimeRanges! "; } } if ( count($deltr) != 0 && $modtr == 0 ){ # Time Range löschen $j = 0; foreach ($deltr as $delrange){ $entrydeltr ['timerange'][$j] = $delrange; $j++; } # dann löschen echo "Löschen: "; print_r($entrydeltr); echo " "; if($result = ldap_mod_del($ds,$mcDN,$entrydeltr)){ $mesg = "TimeRanges erfolgreich gelöscht "; }else{ $mesg = "Fehler beim löschen der TimeRanges! "; } }elseif(count($deltr) != 0 && $modtr == 1){ echo "Nur Ändern (gleichzeitig Löschen und Ändern geht nicht)"; } ##################################### # TimeRange hinzufügen if ( $newmcday != "" && $newmcbeg != "" && $newmcend != "" && $newmcbeg <= $newmcend ){ # TimeRange Syntax checken $syntax = new Syntaxcheck; if ($syntax->check_timerange_syntax($newmcday,$newmcbeg,$newmcend)){ # in Grossbuchstaben if (preg_match("/([a-z]+)/",$newmcday)){$newmcday = strtoupper($newmcday);} if (preg_match("/([a-z]+)/",$newmcbeg)){$newmcbeg = strtoupper($newmcbeg);} if (preg_match("/([a-z]+)/",$newmcend)){$newmcend = strtoupper($newmcend);} # führende Nullen weg $newmcbeg = preg_replace ( '/0([0-9])/', '$1', $newmcbeg); $newmcend = preg_replace ( '/0([0-9])/', '$1', $newmcend); # TimeRange auf Überschneidung mit vorhandenen checken if(check_timerange($newmcday,$newmcbeg,$newmcend,$nodeDN,"")){ $newmctimerange = $newmcday."_".$newmcbeg."_".$newmcend; $entrytr ['timerange'] = $newmctimerange; if($result = ldap_mod_add($ds,$mcDN,$entrytr)){ $mesg = "Zusätzliche TimeRange erfolgreich eingetragen "; }else{ $mesg = "Fehler beim eintragen der zusätzlichen TimeRange! "; } }else{ $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range überschneidet! Bitte geben Sie eine andere Time Range ein. "; } }else{ $mesg = "Falsche Syntax in der Timerange-Eingabe! Bitte geben Sie die erneut Time Range ein. "; } } ##################################### # MC Description if ( $oldmcdesc == $mcdesc ){ # $mesg = "keine Aenderung "; } if ( $oldmcdesc == "" && $mcdesc != "" ){ echo "MC-Beschreibung neu anlegen "; # hier noch Syntaxcheck $entrymc['description'] = $mcdesc; if(ldap_mod_add($ds,$mcDN,$entrymc)){ $mesg = "MC-Beschreibung erfolgreich eingetragen "; }else{ $mesg = "Fehler beim eintragen der MC-Beschreibung "; } } if ( $oldmcdesc != "" && $mcdesc != "" && $oldmcdesc != $mcdesc ){ echo "MC-Beschreibung aendern "; # hier noch Syntaxcheck $entrymc['description'] = $mcdesc; if(ldap_mod_replace($ds,$mcDN,$entrymc)){ $mesg = "MC-Beschreibung erfolgreich geaendert "; }else{ $mesg = "Fehler beim aendern der MC-Beschreibung "; } } if ( $oldmcdesc != "" && $mcdesc == "" ){ echo "Rechner-Beschreibung loeschen "; # hier noch Syntaxcheck $entrymc['description'] = $oldmcdesc; if(ldap_mod_del($ds,$mcDN,$entrymc)){ $mesg = "MC-Beschreibung erfolgreich geloescht "; }else{ $mesg = "Fehler beim loeschen der MC-Beschreibung "; } } ##################################### # Crontab Entries if (count($crontab) != 0 && (count(array_diff_assoc($crontab,$oldcrontab)) != 0 || count(array_diff_assoc($oldcrontab,$crontab)) != 0) ){ $crontabentry = array(); foreach ($crontab as $ct){ if ($ct != ""){ $crontabentry ['crontab-entries'][] = $ct; } } $oldcrontabentry = array(); foreach ($oldcrontab as $oldct){ if ($oldct != ""){ $oldcrontabentry ['crontab-entries'][] = $oldct; } } if (count($crontabentry) == 0){ echo "Crontab Eintrag löschen "; ldap_mod_del($ds,$mcDN,$oldcrontabentry); }else{ echo "Crontab Eintrag ändern "; print_r($crontabentry); ldap_mod_replace($ds,$mcDN,$crontabentry); } } ##################################### # Restliche Attribute $entryadd = array(); $entrymod = array(); $entrydel = array(); foreach (array_keys($atts) as $key){ if ( $oldatts[$key] == $atts[$key] ){ } if ( $oldatts[$key] == "" && $atts[$key] != "" ){ # hier noch Syntaxcheck $entryadd[$key] = $atts[$key]; } if ( $oldatts[$key] != "" && $atts[$key] != "" && $oldatts[$key] != $atts[$key] ){ # hier noch Syntaxcheck $entrymod[$key] = $atts[$key]; } if ( $oldatts[$key] != "" && $atts[$key] == "" ){ # hier noch Syntaxcheck $entrydel[$key] = $oldatts[$key]; } } #print_r($entryadd); echo " "; #print_r($entrymod); echo " "; #print_r($entrydel); echo " "; if (count($entryadd) != 0 ){ #print_r($entryadd); echo " "; #echo "neu anlegen "; foreach (array_keys($entryadd) as $key){ $addatts .= "".$key.","; } if(ldap_mod_add($ds,$mcDN,$entryadd)){ $mesg = "Attribute ".$addatts." erfolgreich eingetragen "; }else{ $mesg = "Fehler beim eintragen der Attribute ".$addatts." "; } } if (count($entrymod) != 0 ){ #print_r($entrymod); echo " "; #echo "ändern "; foreach (array_keys($entrymod) as $key){ $modatts .= "".$key.","; } if(ldap_mod_replace($ds,$mcDN,$entrymod)){ $mesg = "Attribute ".$modatts." erfolgreich geaendert "; }else{ $mesg = "Fehler beim aendern der Attribute ".$modatts." "; } } if (count($entrydel) != 0 ){ #print_r($entrydel); echo " "; #echo "löschen "; foreach (array_keys($entrydel) as $key){ $delatts .= "".$key.","; } if(ldap_mod_del($ds,$mcDN,$entrydel)){ $mesg = "Attribute ".$delatts." erfolgreich geloescht "; }else{ $mesg = "Fehler beim loeschen der Attribute ".$delatts." "; } } $mesg .= " Sie werden automatisch auf die vorherige Seite zurückgeleitet. Falls nicht, klicken Sie hier back"; redirect($seconds, $url, $mesg, $addSessionId = TRUE); echo " |