diff options
author | Tarik Gasmi | 2007-05-14 10:03:48 +0200 |
---|---|---|
committer | Tarik Gasmi | 2007-05-14 10:03:48 +0200 |
commit | 59cf91925ca8da43d2427331b23e4673b0e53095 (patch) | |
tree | 871f39414143192cb3e8bd6f4bd2b7462e7076b9 /ldap-site-mngmt/webinterface/computers/mcdef_change.php | |
parent | Some webinterface data. (diff) | |
download | core-59cf91925ca8da43d2427331b23e4673b0e53095.tar.gz core-59cf91925ca8da43d2427331b23e4673b0e53095.tar.xz core-59cf91925ca8da43d2427331b23e4673b0e53095.zip |
Other webinterface data.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1077 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'ldap-site-mngmt/webinterface/computers/mcdef_change.php')
-rw-r--r-- | ldap-site-mngmt/webinterface/computers/mcdef_change.php | 402 |
1 files changed, 402 insertions, 0 deletions
diff --git a/ldap-site-mngmt/webinterface/computers/mcdef_change.php b/ldap-site-mngmt/webinterface/computers/mcdef_change.php new file mode 100644 index 00000000..4aaa29fe --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef_change.php @@ -0,0 +1,402 @@ +<?php +include('../standard_header.inc.php'); + +$mccn = "MC_".$_POST['mccn']; +$mcdesc = $_POST['mcdesc']; $mcdesc = htmlentities($mcdesc); + +$mcday = $_POST['mcday']; +$mcbeg = $_POST['mcbeg']; +$mcend = $_POST['mcend']; +foreach (array_keys($mcday) as $key){ + $mcday[$key] = htmlentities($mcday[$key]); +} +foreach (array_keys($mcbeg) as $key){ + $mcbeg[$key] = htmlentities($mcbeg[$key]); +} +foreach (array_keys($mcend) as $key){ + $mcend[$key] = htmlentities($mcend[$key]); +} + +$deltr = $_POST['deltr']; + +$newmcday = $_POST['newmcday']; $newmcday = htmlentities($newmcday); +$newmcbeg = $_POST['newmcbeg']; $newmcbeg = htmlentities($newmcbeg); +$newmcend = $_POST['newmcend']; $newmcend = htmlentities($newmcend); + +$oldmcdesc = $_POST['oldmcdesc']; $oldmcdesc = htmlentities($oldmcdesc); +$oldmcday = $_POST['oldmcday']; +$oldmcbeg = $_POST['oldmcbeg']; +$oldmcend = $_POST['oldmcend']; + +$crontab = $_POST['crontab']; +$oldcrontab = $_POST['oldcrontab']; +foreach (array_keys($crontab) as $key){ + $crontab[$key] = htmlentities($crontab[$key]); +} + +$mcDN = $_POST['mcdn']; +$oldmccn = "MC_".$_POST['oldmccn']; + +$nodeDN = $_POST['nodedn']; +$mnr = $_POST['mnr']; +$sbmnr = $_POST['sbmnr']; +$mcnr = $_POST['mcnr']; + +# sosntige Attribute +$attribs = $_POST['attribs']; +if (count($attribs) != 0){ + foreach (array_keys($attribs) as $key){ + $atts[$key] = htmlentities($attribs[$key]); + } +} +#print_r($atts); echo "<br><br>"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +} +#print_r($oldatts); echo "<br><br>"; + + +$seconds = 2; +$url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " +<html> +<head> + <title>Computers Management</title> + <link rel='stylesheet' href='../styles.css' type='text/css'> +</head> +<body> +<table border='0' cellpadding='30' cellspacing='0'> +<tr><td>"; + +############################################## +# MC CN (DN) + +if ( $oldmccn == $mccn ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( $oldmccn != "" && $mccn != "" && $oldmccn != $mccn ){ + echo "Machine Config Name aendern<br>"; + # 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 "<br><br>"; + + if(modify_mc_dn($mcDN, $newmcDN)){ + $mesg = "MC Name erfolgreich geändert<br><br>"; + $mcDN = $newmcDN; + }else{ + $mesg = "Fehler beim ändern des MC Name!<br><br>"; + } + + + # newsubmenu holen... + $url = "mcdef.php?dn=".$newmcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + +if ( $oldmccn != "" && $mccn == "" ){ + echo "Gruppenname loeschen!<br> + Dieses ist Teil des DN, Sie werden die MachineConfig komplett löschen<br><br>"; + echo "Wollen Sie die MachineConfig <b>".$oldmccn."</b> wirklich löschen?<br><br> + <form action='mcdef_delete.php' method='post'> + Falls ja:<br><br> + <input type='hidden' name='dn' value='".$mcDN."'> + <input type='hidden' name='name' value='".$oldmccn."'> + <input type='Submit' name='apply' value='löschen' class='small_loginform_button'><br><br> + </form> + <form action='".$url."' method='post'> + Falls, nein:<br><br> + <input type='Submit' name='apply' value='zurück' class='small_loginform_button'> + </form>"; + $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<count($mcday); $i++){ + +$oldmctimerange = $oldmcday[$i]."_".$oldmcbeg[$i]."_".$oldmcend[$i]; + +if ( ($mcbeg[$i] <= $mcend[$i]) && ( ($mcday[$i] != $oldmcday[$i] && $mcday[$i] != "") || ($mcbeg[$i] != $oldmcbeg[$i] && $mcbeg[$i] != "") || ($mcend[$i] != $oldmcend[$i] && $mcend[$i] != "")) ){ + + + # TimeRange Syntax checken + $syntax = new Syntaxcheck; + if ($syntax->check_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!<br> + Bitte geben Sie eine andere Time Range ein.<br><br>"; + $entrymodtr ['timerange'][$i] = $oldmctimerange; + } + } + else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!<br> + Bitte geben Sie die erneut Time Range ein.<br><br>"; + $entrymodtr ['timerange'][$i] = $oldmctimerange; + } + +} + + +elseif ( $mcday[$i] == "" || $mcbeg[$i] == "" || $mcend[$i] == "" || $mcbeg[$i] > $mcend[$i]){ + + $mesg = "Sie haben die Time Range <b>Nr.".$i."</b> nicht vollständig angegeben. Diese ist aber ein notwendiges Attribut.<br> + Diese Time Range wird nicht bearbeitet.<br><br>"; + $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 "<br>"; + if($result = ldap_mod_replace($ds,$mcDN,$entrymodtr)){ + $mesg = "TimeRanges erfolgreich geändert<br><br>"; + }else{ + $mesg = "Fehler beim ändern der TimeRanges!<br><br>"; + } +} + + +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 "<br>"; + if($result = ldap_mod_del($ds,$mcDN,$entrydeltr)){ + $mesg = "TimeRanges erfolgreich gelöscht<br><br>"; + }else{ + $mesg = "Fehler beim löschen der TimeRanges!<br><br>"; + } +}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<br><br>"; + }else{ + $mesg = "Fehler beim eintragen der zusätzlichen TimeRange!<br><br>"; + } + }else{ + $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range + überschneidet!<br> + Bitte geben Sie eine andere Time Range ein.<br><br>"; + } + }else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!<br> + Bitte geben Sie die erneut Time Range ein.<br><br>"; + } +} + +##################################### +# MC Description + +if ( $oldmcdesc == $mcdesc ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( $oldmcdesc == "" && $mcdesc != "" ){ + echo "MC-Beschreibung neu anlegen<br>"; + # hier noch Syntaxcheck + $entrymc['description'] = $mcdesc; + if(ldap_mod_add($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich eingetragen<br><br>"; + }else{ + $mesg = "Fehler beim eintragen der MC-Beschreibung<br><br>"; + } +} + +if ( $oldmcdesc != "" && $mcdesc != "" && $oldmcdesc != $mcdesc ){ + echo "MC-Beschreibung aendern<br>"; + # hier noch Syntaxcheck + $entrymc['description'] = $mcdesc; + if(ldap_mod_replace($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich geaendert<br><br>"; + }else{ + $mesg = "Fehler beim aendern der MC-Beschreibung<br><br>"; + } +} + +if ( $oldmcdesc != "" && $mcdesc == "" ){ + echo "Rechner-Beschreibung loeschen<br>"; + # hier noch Syntaxcheck + $entrymc['description'] = $oldmcdesc; + if(ldap_mod_del($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich geloescht<br><br>"; + }else{ + $mesg = "Fehler beim loeschen der MC-Beschreibung<br><br>"; + } +} + +##################################### +# 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<br>"; + ldap_mod_del($ds,$mcDN,$oldcrontabentry); + }else{ + echo "Crontab Eintrag ändern<br>"; + 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 "<br>"; +#print_r($entrymod); echo "<br>"; +#print_r($entrydel); echo "<br>"; + + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "<br>"; + #echo "neu anlegen<br>"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "<b>".$key."</b>,"; + } + if(ldap_mod_add($ds,$mcDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "<br>"; + #echo "ändern<br>"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "<b>".$key."</b>,"; + } + if(ldap_mod_replace($ds,$mcDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."<br><br>"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "<br>"; + #echo "löschen<br>"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "<b>".$key."</b>,"; + } + if(ldap_mod_del($ds,$mcDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>"; + } +} + + + + +$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zurückgeleitet. <br> + Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "</td></tr></table></body> +</html>"; +?>
\ No newline at end of file |