"; $oldattribs = $_POST['oldattribs']; if (count($oldattribs) != 0){ foreach (array_keys($oldattribs) as $key){ $oldatts[$key] = htmlentities($oldattribs[$key]); } } #print_r($oldatts); echo "

"; $seconds = 2; $url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; echo " Computers Management
"; ############################################## # 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?

Falls ja:



Falls, nein:

"; $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; $icheck_timerange_syntax($mcday[$i],$mcbeg[$i],$mcend[$i])){ # in Grossbuchstaben if (preg_match("/([a-z]+)/",$mcday[$i])){$mcday[$i] = strtoupper($mcday[$i]);} if (preg_match("/([a-z]+)/",$mcbeg[$i])){$mcbeg[$i] = strtoupper($mcbeg[$i]);} if (preg_match("/([a-z]+)/",$mcend[$i])){$mcend[$i] = strtoupper($mcend[$i]);} # führende Nullen weg $mcbeg[$i] = preg_replace ( '/0([0-9])/', '$1', $mcbeg[$i]); $mcend[$i] = preg_replace ( '/0([0-9])/', '$1', $mcend[$i]); # TimeRange auf Überschneidung mit vorhandenen checken außer mit eigener alter TR da diese # ja geändert werden soll if(check_timerange($mcday[$i],$mcbeg[$i],$mcend[$i],$nodeDN,$oldmctimerange)){ $mctimerange = $mcday[$i]."_".$mcbeg[$i]."_".$mcend[$i]; $entrymodtr ['timerange'][$i] = $mctimerange; $modtr = 1; } else{ $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range überschneidet!
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 "
"; ?>