function check_tftpip_in_mipb($tftpserverip) { global $ds, $suffix, $auDN, $rootAU, $ldapError; // echo " $auDN == $rootAU <br><br>"; if ($auDN == $rootAU) { return 1; } else { $mipb_array = get_maxipblocks_au($auDN); if ($mipb_array[0] != "") { $new_tftpip = $tftpserverip . '_' . $tftpserverip; for ($i = 0; $i < count($mipb_array); $i++) { if (split_iprange($new_tftpip, $mipb_array[$i]) != 0) { return 1; break; } } } } return 0; }
function createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr) { global $template, $ds, $suffix, $START_PATH; $mipb_array = get_maxipblocks_au($auDN); #print_r($mipb_array); if ($mipb_array[0] == "") { $iprechnerlink = "no_ip.php?mnr=2"; } else { $iprechnerlink = "ip_rechner.php?sort=ipaddress"; } # Struktur der Registerkartenleiste # Hauptmenu $hauptmenu = array(array("link" => "hostoverview.php?sort=hostname", "text" => "Übersicht Clients", "zugriff" => array("MainAdmin", "HostAdmin", "DhcpAdmin")), array("link" => $iprechnerlink, "text" => "IP Adressen / Dienste", "zugriff" => array("MainAdmin", "DhcpAdmin", "HostAdmin"))); # Submenus /*$computers_array = get_hosts($auDN,array("dn","hostname","ou")); for($n=0;$n<count($computers_array);$n++){ $comps[] = array("link" => "host.php?dn=".$computers_array[$n]['dn']."&sbmnr=".$n, "text" => $computers_array[$n]['hostname'], "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); # print_r($comps); echo "<br>"; }*/ $comps[] = array("link" => "new_host.php?sbmnr=0", "text" => "Neuen Client anlegen", "zugriff" => array("MainAdmin", "DhcpAdmin", "HostAdmin")); /* $groups_array = get_groups($auDN,array("dn","cn")); for($n=0;$n<count($groups_array);$n++){ $groups = array(); $groups[] = array("link" => "group.php?dn=".$groups_array[$n]['dn']."&sbmnr=".$n, "text" => $groups_array[$n]['cn'], "zugriff" => array("MainAdmin","DhcpAdmin","HostAdmin")); } $groups[] = array("link" => "new_group.php?sbmnr=".$n, "text" => "Neue Gruppe anlegen", "zugriff" => array("MainAdmin","DhcpAdmin","HostAdmin")); */ # default machine-configs #$mcdef_array = get_machineconfigs("cn=computers,".$auDN,array("dn","cn","timerange")); #for($n=0;$n<count($mcdef_array);$n++){ # $defmc [] = array("link" => "mcdef.php?dn=".$mcdef_array[$n]['dn']."&mnr=3&sbmnr=".$n, # "text" => $mcdef_array[$n]['cn'], # "zugriff" => array("MainAdmin","DhcpAdmin","HostAdmin")); #} $newpxe[] = array("link" => "new_pxe.php", "text" => "Neue PXE Config", "zugriff" => array("MainAdmin", "DhcpAdmin")); $submenu = array($comps, array(), $newpxe); #echo "submenu: ";print_r($submenu);echo "<br><br>"; # Zusammenstellen der Menuleiste $template->define_dynamic("Hauptmenu", "Menu"); $template->define_dynamic("Submenu", "Menu"); $i = 0; $maxmenu = count($hauptmenu); foreach ($hauptmenu as $item) { $template->clear_parse("SUBMENU_LIST"); if ($item['zugriff'] === "alle" || vergleicheArrays($rollen, $item['zugriff'])) { ######################################################################### # SUBMENU $subempty = 0; $j = 0; $maxsub = count($submenu[$mnr]); #echo "_"; print_r($maxsub); echo "_"; if ($maxsub > 0) { foreach ($submenu[$mnr] as $item2) { if ($item2['zugriff'] === "alle" || vergleicheArrays($rollen, $item2['zugriff'])) { if ($i != $mnr) { $template->assign(array("SUB" => "")); # "LINK_S" => "", # "TEXT_S" => "")); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } else { if ($j == 0) { if ($sbmnr == 0) { if ($maxsub == 1) { $zwisch2 = "branchbottom2"; } else { $zwisch2 = "branch2"; } $lastaktive = true; $farb = "#505050"; } else { if ($maxsub == 1) { $zwisch2 = "branchbottom2"; } else { $zwisch2 = "branch2"; } $farb = "#A0A0A0"; $lastaktive = false; } } else { if ($sbmnr == $j) { if ($maxsub == $j + 1) { $zwisch2 = "branchbottom2"; } else { $zwisch2 = "branch2"; } $lastaktive = true; $farb = "#505050"; } else { if ($maxsub == $j + 1) { $zwisch2 = "branchbottom2"; } else { $zwisch2 = "branch2"; } $farb = "#A0A0A0"; $lastaktive = false; } } $htmlcode = "\n\t\t \t\t<tr height='2'>\n\t\t\t\t\t\t<td></td><td align='right'><img src='../pics/line2.gif' height='2'></td><td></td><td></td>\n\t\t \t\t</tr>\n\t\t \t\t<tr>\n\t\t\t\t\t\t<td width='8%'> </td>\n\t\t\t\t\t\t<td width='5%' align='right'><img src='../pics/" . $zwisch2 . ".gif'></td>\n \t\t\t\t\t\t<td width='5%' align='left' style='border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:4;background-color:{FARBE_S}'> </td>\n\t\t \t\t\t<td width='74%' align='left' style='border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:4;padding-left:12px;background-color:{FARBE_S}'> \n\t\t \t\t\t<a href='" . $item2['link'] . "' style='text-decoration:none'><code class='submenue_schrift'>" . $item2['text'] . "</code></a></td>\n\t\t\t\t\t\t<td width='8%'> </td> \t\t\t\t\t\t\n\t\t\t\t\t</tr>\n\t\t\t\t\t"; $template->assign(array("SUB" => $htmlcode)); $template->assign(array("FARBE_S" => $farb)); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } } else { $subempty++; } $j = $j + 1; } } if ($subempty == count($submenu[$mnr])) { $template->assign(array("SUB" => "")); # "LINK_S" => "", # "TEXT_S" => "")); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } # SUBMENU ##################################################################### if ($i == 0) { if ($mnr == 0) { if (count($submenu[$i][0]) != 0) { if ($maxmenu == 1) { $zwisch = ""; } else { $zwisch = ""; } } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { if (count($submenu[$i][0]) != 0) { if ($maxmenu == 1) { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } else { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } } else { $zwisch = ""; } $farb = "#A0A0A0"; $lastaktive = false; } } else { if ($mnr == $i) { if (count($submenu[$mnr][0]) != 0) { if ($maxmenu == $i + 1) { $zwisch = ""; } else { $zwisch = ""; } } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { if (count($submenu[$i][0]) != 0) { if ($maxmenu == $i + 1) { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } else { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } } else { $zwisch = ""; } $farb = "#A0A0A0"; $lastaktive = false; } } $template->assign(array("ICON" => $zwisch, "FARBE" => $farb, "LINK_M" => $item["link"], "TEXT_M" => $item["text"])); $template->parse("HAUPTMENU_LIST", ".Hauptmenu"); $template->clear_dynamic("Hauptmenu"); } $i = $i + 1; } if ($lastaktive) { $template->assign(array("ENDE" => "")); } else { $template->assign(array("ENDE" => "")); } }
/** * reduce_ip_delegation($oldmipb,$newmipb,$childauDN,$auDN) * Einen an eine untergeordnete AU delegierten IP Bereich verkleinern. Diese Funktion wird rekursiv fuer * alle weiter-delegierten Teilbereiche abgearbeitet. FreeIPBlocks der AU und Child-AU, sowie MaxIPBlocks * der Child-AU werden angepasst. * * @param string oldmipb delegierter maximaler IP Bereich, der verkleinert werden soll * @param string newmipb delegierter maximaler IP Bereich nach der Verkleinerung * @param string childauDN Distinguished Name des untergeordneten (Child) LDAP AU-Objektes * @param string auDN Distinguished Name des LDAP AU-Objektes * * @return boolean 1 bei Erfolg bzw. 0 bei Misserfolg * * @author Tarik Gasmi */ function reduce_ip_delegation($oldmipb, $newmipb, $childauDN, $auDN) { global $ds, $suffix, $ldapError; # Durch Reduzierung zu loeschende IP Ranges (Array) $delip = split_iprange($newmipb, $oldmipb); #print_r($delip);printf("<br><br>"); # Finde unter allen Child-AUs diejenigen, die von Reduzierung betroffene Child-Child-AUs haben # Diese sind werden rekursiv abgearbeitet $cchild_array = get_childau($childauDN, array("dn", "maxipblock")); $cchild_todo = array(); foreach ($delip as $delipitem) { foreach ($cchild_array as $item) { if (count($item['maxipblock']) > 1) { foreach ($item['maxipblock'] as $item2) { if (intersect_ipranges($delipitem, $item2) != false) { $cchild_todo[] = array('coldmipb' => $item2, 'cnewmipb' => intersect_ipranges($newmipb, $item2), 'ccauDN' => $item['dn'], 'childauDN' => $childauDN); } } } elseif (count($item['maxipblock']) == 1) { if (intersect_ipranges($delipitem, $item['maxipblock']) != false) { $cchild_todo[] = array('coldmipb' => $item['maxipblock'], 'cnewmipb' => intersect_ipranges($newmipb, $item['maxipblock']), 'ccauDN' => $item['dn'], 'childauDN' => $childauDN); } } } } #print_r($cchild_todo);printf("<br><br>"); ###################### # Rekursionsaufruf (für jede Child-AU, die betroffene Child-Child-AU hat) foreach ($cchild_todo as $item) { if ($item['cnewmipb'] == false) { delete_ip_delegation($item['coldmipb'], $item['ccauDN'], $item['childauDN']); } else { reduce_ip_delegation($item['coldmipb'], $item['cnewmipb'], $item['ccauDN'], $item['childauDN']); } } ###################### # Ab hier: alles was bei jedem Fkt.Aufruf zu machen ist (auf Ebene AU und Child-AU) # in CAU Check ob RechnerIPs oder DhcpIPs betroffen: # - falls ja: nochmals Abfrage (Hammermethode: diese auch loeschen) ob diese zu loeschen sind # -> ja, betreffende IPs loeschen # -> nein, Abbruch. # - falls nein: fuer jedes FIPB in CAU intersect(FIPB,newmipb)-> Schnittmengen bilden die neuen FIPB $del_objects = objects_to_adjust($newmipb, $delip, $childauDN, $cchild_array); # print_r($del_objects);printf("<br><br>"); if (count($del_objects['hostips']) != 0) { printf("<br>Host IP Addresses that will be deleted: <br>"); foreach ($del_objects['hostips'] as $item) { printf("HostDN: %s IP Address: %s <br>", $item['dn'], $item['ip']); } } if (count($del_objects['dhcpranges']) != 0) { printf("<br>Subnet IP Ranges that will be adjusted: <br>"); foreach ($del_objects['dhcpranges'] as $item) { printf("DhcpObjectDN: %s New IP Range: %s <br>", $item['dn'], $item['newrange']); } } # momentan wird einfach geloescht: if (count($del_objects['hostips']) != 0) { foreach ($del_objects['hostips'] as $item) { delete_ip_host($item['dn'], $item['auDN']); } } if (count($del_objects['dhcpranges']) != 0) { foreach ($del_objects['dhcpranges'] as $item) { if (count($item['newrange']) >= 1) { modify_ip_dhcprange($item['newrange'], $item['dn'], $item['auDN']); } else { delete_ip_dhcprange($item['dn'], $item['auDN']); } } } # in Child-AU: oldmipb -> newmipb $mipb_array = get_maxipblocks_au($childauDN); # print_r($mipb_array);printf("<br><br>"); foreach ($delip as $delipitem) { for ($i = 0; $i < count($mipb_array); $i++) { if (intersect_ipranges($delipitem, $mipb_array[$i]) != 0) { $ipranges = intersect_ipranges($newmipb, $mipb_array[$i]); array_splice($mipb_array, $i, 1, $ipranges); } } } # print_r($mipb_array);printf("<br><br>"); for ($i = 0; $i < count($mipb_array); $i++) { if ($mipb_array[$i] == false) { array_splice($mipb_array, $i, 1); } } #print_r($mipb_array);printf("<br><br>"); if (count($mipb_array) == 0) { $entry['MaxIPBlock'] = array(); #print_r($entry);printf("<br><br>"); $results = ldap_mod_del($ds, $childauDN, $entry); } else { foreach ($mipb_array as $item) { $entry['MaxIPBlock'][] = $item; } #print_r($entry);printf("<br><br>"); $results = ldap_mod_replace($ds, $childauDN, $entry); } if ($results) { echo "<br>MIPBs in Child-AU erfolgreich aktualisiert!<br>"; # in Child-AU: FIPBs anpassen $fipb_array = get_freeipblocks_au($childauDN); #print_r($fipb_array);printf("<br><br>"); foreach ($delip as $delipitem) { for ($i = 0; $i < count($fipb_array); $i++) { if (intersect_ipranges($delipitem, $fipb_array[$i]) != 0) { $ipranges = intersect_ipranges($newmipb, $fipb_array[$i]); array_splice($fipb_array, $i, 1, $ipranges); } } } # print_r($fipb_array);printf("<br><br>"); for ($i = 0; $i < count($fipb_array); $i++) { if ($fipb_array[$i] == false) { array_splice($fipb_array, $i, 1); } } #print_r($fipb_array);printf("<br><br>"); if (count($fipb_array) == 0) { $entry1['FreeIPBlock'] = array(); #print_r($entry1);printf("<br><br>"); $results = ldap_mod_del($ds, $childauDN, $entry1); } else { foreach ($fipb_array as $item) { $entry1['FreeIPBlock'][] = $item; } #print_r($entry1);printf("<br><br>"); $results = ldap_mod_replace($ds, $childauDN, $entry1); } if ($results) { echo "FIPBs in Child-AU erfolgreich aktualisiert!<br>"; # in AU: Geloeschte IP Bereiche als neue FIPBs aufnehmen foreach ($delip as $item) { $entry2['FreeIPBlock'][] = $item; } #print_r($entry2);printf("<br><br>"); $results = ldap_mod_add($ds, $auDN, $entry2); if ($results) { echo "FIPBs in AU erfolgreich aktualisiert!<br>"; # IP Bloecke aufraeumen in Child-AU und AU (Merging) merge_ipranges($auDN); merge_ipranges($childauDN); return 1; } else { echo "Fehler beim aktualisieren der FIPBs in AU!<br>"; return 0; } } else { echo "Fehler beim aktualisieren der FIPBs in Child-AU!<br>"; return 0; } } else { echo "<br>Fehler beim aktualisieren der MIPBs in Child-AU!<br>"; return 0; } }
function check_subnet_mipb($subnet) { global $ds, $suffix, $auDN, $ldapError; $subexp = explode('.', $subnet); $ret = 0; $mipb_array = get_maxipblocks_au($auDN); if ($mipb_array[0] != "") { foreach ($mipb_array as $mipb) { $exp = explode('_', $mipb); $ms = explode('.', $exp[0]); $me = explode('.', $exp[1]); if ($subexp[2] >= $ms[2] && $subexp[2] <= $me[2]) { $ret = 1; break; } } } if ($ret) { return 1; } else { return 0; } }
} elseif (!$auzone[$i]) { # Zone löschen #$entry['objectclass'] = "domainRelatedObject"; #$entry['associateddomain'] = $oldauzone[$i]; #$result = ldap_mod_del($ds,$audn[$i],$entry); #if ($result) { # $mesg .= "<b>$oldauzone[$i]</b> erfolgreich in $audn[$i] gelöscht<br>"; #}else { # $mesg .= "Fehler beim löschen von <b>$oldauzone[$i]</b> in $audn[$i]<br>"; #} $mesg .= "<b>{$oldauzone[$i]}</b> kann nicht gelöscht werden<br>\n\t\t\t\t\tAdministrative Einheiten (AUs) müssen einer DNS Zone zugeordnet sein!<br>"; } else { # Zone ändern if ($syntax->is_hostname($auzone[$i])) { # if AU IP Ranges ... DNS Lookup Test $mipbs = get_maxipblocks_au($audn[$i]); #echo "MIPBS: <br>";print_r($mipbs); if ($mipbs[0] != "") { foreach ($mipbs as $mipb) { $exp = explode("_", $mipb); if (!check_iprange_zone($exp[0], $exp[1], $auzone[$i], $expou[0])) { $change_zone = 0; } } } if (in_array($auzone[$i], $oldauzone)) { # Zone existiert bereits $mesg .= "<br>Zone {$auzone[$i]} existiert bereits.<br>"; # eigene Host auf Eindeutigkeit testen in neuer Zone ... $hosts = get_hosts($audn[$i], array("dn", "hostname"), ""); if ($matches = check_hostarray_fqdn2($hosts, $auzone[$i])) {
function createDhcpMenu($rollen, $mnr, $auDN, $sbmnr) { global $template, $START_PATH, $rootAU; $i = 0; $mipbs = get_maxipblocks_au($auDN); #echo "MIPB: "; print_r ($mipbs); echo "<br>"; if ($mipbs[0] != "") { $hauptmenu = array(); } else { $hauptmenu = array(array("link" => "no_dhcp.php?mnr=" . $i, "text" => "Übersicht", "zugriff" => "alle")); $i++; } $pools = get_dhcppools($auDN, array("dn")); if (count($pools) == 0) { $poollink = "dhcpnopool.php"; } else { $poollink = "dhcppools.php"; } if ($auDN == $rootAU) { $dhcpservice_array = get_dhcpservices($auDN, array("dn", "cn")); if (count($dhcpservice_array) == 0) { $dhcpsvlink = "new_dhcpservice.php?mnr=1"; } else { $dhcpsvlink = "dhcpservice.php?mnr=1"; } $hauptmenu[] = array("link" => $dhcpsvlink, "text" => "DHCP Service", "zugriff" => array("MainAdmin", "DhcpAdmin")); $i++; } #if ($mipbs[0] != ""){ #if ( check_if_max_networks() ){ $hauptmenu[] = array("link" => "dhcpsubnets.php?mnr=" . $i, "text" => "DHCP Subnets", "zugriff" => array("MainAdmin", "DhcpAdmin")); if ($mipbs[0] != "") { $subnets = array(); # falls komplette Netze verfügbar, link zum Neuanlegen if (check_if_free_networks()) { #$dhcpsubnet_array = get_dhcpsubnets($auDN,array("dn","cn")); /*for ($j=0;$j<count($dhcpsubnet_array);$j++){ $subnets[] = array("link" => "dhcpsubnet.php?dn=".$dhcpsubnet_array[$j]['dn']."&mnr=".$i."&sbmnr=".$j, "text" => $dhcpsubnet_array[$j]['cn'], "zugriff" => array("MainAdmin","DhcpAdmin")); }*/ $subnets[] = array("link" => "new_dhcpsubnet.php?mnr=" . $i . "&sbmnr=0", "text" => "Neues DHCP Subnet", "zugriff" => array("MainAdmin", "DhcpAdmin")); } $i++; $hauptmenu[] = array("link" => $poollink . "?mnr=" . $i, "text" => "Dynamische DHCP Pools", "zugriff" => array("MainAdmin", "DhcpAdmin")); $submenu = array($subnets, array()); #}else{ # $hauptmenu [] = array("link" => $poollink."?mnr=".$i, # "text" => "Dynamische DHCP Pools", # "zugriff" => array("MainAdmin","DhcpAdmin")); #} } # DHCP Classes if ($auDN == $rootAU) { $hauptmenu[] = array("link" => "dhcp_classes.php?mnr=" . ++$i, "text" => "DHCP Classes", "zugriff" => array("MainAdmin", "DhcpAdmin")); $hauptmenu[] = array("link" => "dhcp_condstmts.php?mnr=" . ++$i, "text" => "DHCP Conditional Statements", "zugriff" => array("MainAdmin", "DhcpAdmin")); } # Zusammenstellen der Menuleiste $template->define_dynamic("Hauptmenu", "Menu"); $template->define_dynamic("Submenu", "Menu"); $i = 0; $maxmenu = count($hauptmenu); foreach ($hauptmenu as $item) { $template->clear_parse("SUBMENU_LIST"); if ($item['zugriff'] === "alle" || vergleicheArrays($rollen, $item['zugriff'])) { $subempty = 0; $j = 0; $maxsub = count($submenu[$mnr]); if ($maxsub > 0) { foreach ($submenu[$mnr] as $item2) { if ($item2['zugriff'] === "alle" || vergleicheArrays($rollen, $item2['zugriff'])) { if ($i != $mnr) { $template->assign(array("SUB" => "")); # "LINK_S" => "", # "TEXT_S" => "")); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } else { if ($j == 0) { if ($sbmnr == 0) { if ($maxsub == 1) { $zwisch = ""; } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { if ($maxsub == 1) { $zwisch = ""; } else { $zwisch = ""; } $farb = "#A0A0A0"; $lastaktive = false; } } else { if ($sbmnr == $j) { if ($maxsub == $j + 1) { $zwisch = ""; } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { $farb = "#A0A0A0"; if ($maxsub == $j + 1) { $zwisch = ""; } else { $zwisch = ""; } # if ($lastaktive) {$zwisch="branch";} # else {$zwisch="branch";} $lastaktive = false; } } $htmlcode = "\n \t\t \t\t<tr height='2'>\n \t\t\t\t\t\t<td></td><td></td><td></td><td></td>\n \t\t \t\t</tr>\n \t\t \t\t<tr>\n \t\t\t\t\t\t<td width='8%'> </td>\n \t\t\t\t\t\t<td width='8%' align='right'>" . $zwisch . "</td>\n \t\t \t\t\t<td width='74%' align='left' style='border-width:1 1 1 1;border-color:#000000;border-style:solid;padding:2;padding-left:15px;background-color:{FARBE_S}'> \n \t\t \t\t\t<a href='" . $item2['link'] . "' style='text-decoration:none'><code class='submenue_schrift'>" . $item2['text'] . "</code></a></td>\n \t\t\t\t\t\t<td width='10%'> </td> \t\t\t\t\t\t\n \t\t\t\t\t</tr>\n \t\t\t\t\t"; $template->assign(array("SUB" => $htmlcode)); $template->assign(array("FARBE_S" => $farb)); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } } else { $subempty++; } $j = $j + 1; } } if ($subempty == count($submenu[$mnr])) { $template->assign(array("SUB" => "")); # "LINK_S" => "", # "TEXT_S" => "")); $template->parse("SUBMENU_LIST", ".Submenu"); $template->clear_dynamic("Submenu"); } # weiter im Hauptmenü if ($i == 0) { if ($mnr == 0) { if (count($submenu[$i][0]) != 0) { if ($maxmenu == 1) { $zwisch = ""; } else { $zwisch = ""; } } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { if (count($submenu[$i][0]) != 0) { if ($maxmenu == 1) { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } else { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } } else { $zwisch = ""; } $farb = "#A0A0A0"; $lastaktive = false; } } else { if ($mnr == $i) { if (count($submenu[$mnr][0]) != 0) { if ($maxmenu == $i + 1) { $zwisch = ""; } else { $zwisch = ""; } } else { $zwisch = ""; } $lastaktive = true; $farb = "#505050"; } else { $farb = "#A0A0A0"; if (count($submenu[$i][0]) != 0) { if ($maxmenu == $i + 1) { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } else { $zwisch = "<a href='{LINK_M}' style='border-style=none;text-decoration:none'>\n \t<img style='border-width:0;border-style=none;' src='../pics/plus3.gif'></a>"; } } else { $zwisch = ""; } #if ($lastaktive) {$zwisch="";} #else {$zwisch="";} $lastaktive = false; } } $template->assign(array("ICON" => $zwisch, "FARBE" => $farb, "LINK_M" => $item["link"], "TEXT_M" => $item["text"])); $template->parse("HAUPTMENU_LIST", ".Hauptmenu"); $template->clear_dynamic("Hauptmenu"); } $i = $i + 1; } if ($lastaktive) { $template->assign(array("ENDE" => "")); } else { $template->assign(array("ENDE" => "")); } }
/** * createMenu($rechte) - erstellt die Menuleiste abh�ngig von der Rechten des Users. * * Die Navigationsleiste wird dynamisch erzeugt und von dieser Funktion direkt in das * entsprechende Template geparst. Dabei werden nur die Schaltfl�chen zur Verf�gung * gestellt, die der User mit seinen Rechten anzeigen darf. * * @param array rechte Eindimensionales Array mit den Rechten des Users * @param int mainnr Nummer des aktiven Hauptmenus * * @author Timothy Burk */ function createMainMenu($rollen, $mainnr) { global $template, $START_PATH, $auDN; # pre-checks $mipbs = get_maxipblocks_au($auDN); #echo "MIPB: "; print_r ($mipbs); echo "<br>"; if ($mipbs[0] != "") { # $subnet_array = get_dhcpsubnets($auDN,array("dn")); # if ( $subnet_array ) { $dhcplink = "dhcp/dhcpsubnets.php?mnr=0"; # }else{ # $dhcplink = "dhcp/dhcppool.php?mnr=0"; # } } else { $dhcplink = "dhcp/no_dhcp.php"; } # Struktur der Registerkartenleiste $mainmenu = array(array("link" => "au/au.php", "text" => "AU Home", "zugriff" => "alle"), array("link" => $dhcplink, "text" => "DHCP / Netze", "zugriff" => array("MainAdmin", "DhcpAdmin")), array("link" => "computers/hostoverview.php?sort=hostname", "text" => "Clients / IP", "zugriff" => array("MainAdmin", "HostAdmin", "DhcpAdmin")), array("link" => "rbs/rbs.php", "text" => "RemoteBoot/PXE", "zugriff" => array("MainAdmin", "RbsAdmin")), array("link" => "dns/dns.php", "text" => "DNS", "zugriff" => array("MainAdmin", "ZoneAdmin"))); # Zusammenstellen der Menuleiste $template->define_dynamic("Mainmenu", "Mmenu"); $i = 0; foreach ($mainmenu as $item) { if ($item['zugriff'] === "alle" || vergleicheArrays($rollen, $item['zugriff'])) { if ($i == 0) { if ($mainnr == 0) { $zwisch = ""; $lastaktive = true; $farb = "#b8c3cb"; } else { $zwisch = ""; $farb = "#718797"; $lastaktive = false; } } else { if ($mainnr == $i) { $zwisch = ""; $lastaktive = true; $farb = "#b8c3cb"; } else { $farb = "#718797"; if ($lastaktive) { $zwisch = ""; } else { $zwisch = ""; } $lastaktive = false; } } $template->assign(array("MZWISCHEN" => $zwisch, "MFARBE" => $farb, "MLINK_M" => $START_PATH . $item["link"], "MTEXT_M" => $item["text"])); $template->parse("MAINMENU_LIST", ".Mainmenu"); } $i = $i + 1; } if ($lastaktive) { $template->assign(array("MENDE" => "")); } else { $template->assign(array("MENDE" => "")); } }
<?php # Max und Free IP Blocks $mipb_array = get_maxipblocks_au($auDN); $fipb_array = get_freeipblocks_au($auDN); #print_r($mipb_array); echo "<br>"; natsort($mipb_array); natsort($fipb_array); #print_r($mipb_array); echo "<br>"; #print_r(count($mipb_array)); echo "<br>"; #print_r(count($fipb_array)); echo "<br>"; $ipblocks = ""; # print_r($mipb_array); if ($mipb_array[0] != "") { if (count($mipb_array) > 1) { $ipblocks .= "<table border='1' cellpadding='2' cellspacing='0' width='100%' style='border-width: 0 0 0 0;'>\n\t\t\t\t\t\t\t<tr><td colspan='3' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>\n\t\t\t\t\t\t\t<b>Zugewiesene IP Bereiche:</b></td></tr>"; foreach ($mipb_array as $mipb) { $exp = explode('_', $mipb); $ipblocks .= "<tr><td width='45%' class='tab_d'>{$exp['0']} </td>"; if ($exp[0] != $exp[1]) { $ipblocks .= "<td class='tab_d'> - </td>\n\t\t\t\t\t\t\t<td width='45%' class='tab_d'>{$exp['1']} </td>"; } else { $ipblocks .= "<td class='tab_d' colspan='2'> </td>"; } $ipblocks .= "</tr>"; } } elseif (count($mipb_array) == 1) { $ipblocks .= "<table border='1' cellpadding='2' cellspacing='0' width='100%' style='border-width: 0 0 0 0;'>\n\t\t\t\t\t\t\t<tr><td colspan='3' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>\n\t\t\t\t\t\t\t<b>Zugewiesener IP Bereich:</b></td></tr>"; $exp = explode('_', $mipb_array[0]); $ipblocks .= "<tr><td width='45%' class='tab_d'>{$exp['0']} </td>"; if ($exp[0] != $exp[1]) {