diff options
Diffstat (limited to 'ldap-site-mngmt/webinterface/dhcp/dhcpsubnet_change.php')
-rw-r--r-- | ldap-site-mngmt/webinterface/dhcp/dhcpsubnet_change.php | 292 |
1 files changed, 292 insertions, 0 deletions
diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet_change.php b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet_change.php new file mode 100644 index 00000000..b0dc13c7 --- /dev/null +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnet_change.php @@ -0,0 +1,292 @@ +<?php +include('../standard_header.inc.php'); + +$syntax = new Syntaxcheck; + +$cn = $_POST['cn']; +$oldcn = $_POST['oldcn']; +$netmask = $_POST['netmask']; +$oldnetmask = $_POST['oldnetmask']; +$dhcpservice = $_POST['dhcpservice']; +$olddhcpservice = $_POST['olddhcpservice']; +$newrange1 = $_POST['range1']; +$oldrange1 = $_POST['oldrange1']; +$newrange2 = $_POST['range2']; +$oldrange2 = $_POST['oldrange2']; + +$subnetDN = $_POST['subnetdn']; + +# sonstige 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>"; + +$nodeDN = "cn=dhcp,".$auDN; +$mnr = $_POST['mnr']; +$sbmnr = $_POST['sbmnr']; +$mcnr = $_POST['mcnr']; + +$seconds = 200; +$url = "dhcpsubnet.php?dn=".$subnetDN."&mnr=".$mnr."&sbmnr=".$sbmnr; + +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>"; + +############################################## +# DHCP Subnet CN (DN) + +if ( $oldcn == $cn ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( $oldcn != "" && $cn != "" && $oldcn != $cn ){ + + if ( $syntax->check_netip_syntax($cn) ){ + echo "Subnetz aendern<br>"; + $newsubnetDN = "cn=".$cn.",".$nodeDN; + print_r($newsubnetDN); echo "<br><br>"; + + if(modify_subnet_dn($subnetDN,$newsubnetDN)){ + $subnetDN = $newsubnetDN; + $mesg = "DHCP Subnet erfolgreich geändert<br><br>"; + $url = "dhcpsubnet.php?dn=".$subnetDN."&mnr=".$mnr."&sbmnr=".$sbmnr; + }else{ + $mesg = "Fehler beim ändern des DHCP Subnets!<br><br>"; + } + + }else{ + $mesg = "falsche IP Syntax<br>"; + } +} + +if ( $oldcn != "" && $cn == "" ){ + echo "DHCP Subnet loeschen!<br> + Dieser ist Teil des DN, Sie werden den DHCP Subnet komplett löschen<br><br>"; + echo "Wollen Sie den DHCP Subnet <b>".$oldcn."</b> wirklich löschen?<br><br> + <form action='dhcpsubnet_delete.php' method='post'> + Falls ja:<br><br> + <input type='hidden' name='dn' value='".$subnetDN."'> + <input type='hidden' name='name' value='".$oldcn."'> + <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; +} + + +##################################### +# Netmask + +if ( $netmask != $oldnetmask ){ + + if ( $netmask == ""){ + echo "Die Subnetzmaske ist ein notwendiges Attribut.<br> + Keine Änderung!<br>"; + } + + if ( $netmask != "" ){ + if ( $syntax->check_ip_syntax($netmask) ){ + $entry ['dhcpoptnetmask'] = $netmask; + if(ldap_mod_replace($ds,$subnetDN,$entry)){ + $mesg = "Netzmaske erfolgreich geändert<br><br>"; + }else{ + $mesg = "Fehler beim ändern der Netzmaske!<br><br>"; + } + }else{ + $mesg = "falsche IP Syntax<br>"; + } + } + +} + + +##################################### +# DHCP Dienstzuordnung ändern + +if ( $dhcpservice != "none" ){ + + if ( $dhcpservice != "off" && $dhcpservice == $olddhcpservice ){ + $mesg = "Sie haben die gleiche Abteilung ausgewählt<br> + Keine Änderung!"; + } + + if ( $dhcpservice != "off" && $dhcpservice != $olddhcpservice ){ + $entrysv ['dhcphlpcont'] = $dhcpservice; + if(ldap_mod_replace($ds,$subnetDN,$entrysv)){ + $mesg = "DHCP Dienstzuordnung erfolgreich geändert<br><br>"; + } + else{ + $mesg = "Fehler beim ändern der DHCP Dienstzuordnung!<br><br>"; + } + } + + if ( $dhcpservice == "off" && $olddhcpservice != "" ){ + $entrysv ['dhcphlpcont'] = array(); + if(ldap_mod_del($ds,$subnetDN,$entrysv)){ + $mesg = "DHCP Dienstzuordnung erfolgreich geändert<br><br>"; + } + else{ + $mesg = "Fehler beim ändern der DHCP Dienstzuordnung!<br><br>"; + } + } + +} + + +##################################### +# DHCP Range + +if ( $newrange1 == $oldrange1 && $newrange2 == $oldrange2 ){ + # $mesg = "keine Aenderung<br>"; +}else{ + + if ( $newrange1 == "" xor $newrange2 == "" ){ + $mesg = "Bitte beide DHCP Range Felder ausfüllen, keine Aenderung<br>"; + } + + if ( $oldrange1 == "" && $oldrange2 == "" && $newrange1 != "" && $newrange2 != "" ){ + if ( $syntax->check_ip_syntax($newrange1) && $syntax->check_ip_syntax($newrange2) ){ + if ( check_ip_in_subnet($newrange1,$cn) && check_ip_in_subnet($newrange2,$cn)){ + $dhcprange = implode('_',array($newrange1,$newrange2)); + if ( new_ip_dhcprange($dhcprange,$subnetDN,$auDN) ){ + $mesg = "DHCP Range erfolgreich eingetragen"; + }else{ + $mesg = "Fehler beim eintragen der DHCP Range"; + } + }else{ + $mesg = "DHCP Range nicht in Subnetz ".$cn." enthalten"; + } + }else{ + $mesg = "falsche IP Syntax<br>"; + } + } + + if ( $oldrange1 != "" && $oldrange2 != "" && $newrange1 != "" && $newrange2 != "" ){ + if ( $syntax->check_ip_syntax($newrange1) && $syntax->check_ip_syntax($newrange2) ){ + if ( check_ip_in_subnet($newrange1,$cn) && check_ip_in_subnet($newrange2,$cn)){ + $dhcprange = implode('_',array($newrange1,$newrange2)); + $olddhcprange = implode('_',array($oldrange1,$oldrange2)); + if ( modify_ip_dhcprange($dhcprange,$subnetDN,$auDN) ){ + $mesg = "DHCP Range erfolgreich geändert"; + }else{ + $mesg = "Fehler beim ändern der DHCP Range"; + # alte Range wiederherstellen + new_ip_dhcprange($olddhcprange,$subnetDN,$auDN); + } + }else{ + $mesg = "DHCP Range nicht in Subnetz ".$cn." enthalten"; + } + }else{ + $mesg = "falsche IP Syntax<br>"; + } + } + + if ( $newrange1 == "" && $newrange2 == "" ){ + if ( delete_ip_dhcprange($subnetDN,$auDN) ){ + $mesg = "DHCP Range erfolgreich gelöscht"; + }else{ + $mesg = "Fehler beim löschen der DHCP Range"; + } + } + +} + +##################################### +# Restliche Attribute (u.a. Description) + +$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,$subnetDN,$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,$subnetDN,$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,$subnetDN,$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 |