diff options
author | Tarik Gasmi | 2007-10-26 10:41:22 +0200 |
---|---|---|
committer | Tarik Gasmi | 2007-10-26 10:41:22 +0200 |
commit | 310554c02e4b51c5300f8bdf8ad15e3f0520bc53 (patch) | |
tree | 277727e7c13eeaec94fe8089f547f3108b727bcc /ldap-site-mngmt | |
parent | This should fix a small bug reported by Reiner for SuSE10.3 in stage3. (diff) | |
download | core-310554c02e4b51c5300f8bdf8ad15e3f0520bc53.tar.gz core-310554c02e4b51c5300f8bdf8ad15e3f0520bc53.tar.xz core-310554c02e4b51c5300f8bdf8ad15e3f0520bc53.zip |
LSM Webinterface, new actualized Version
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1401 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'ldap-site-mngmt')
73 files changed, 1817 insertions, 1060 deletions
diff --git a/ldap-site-mngmt/webinterface/au/au.dwt b/ldap-site-mngmt/webinterface/au/au.dwt index 0b2dbb60..16f0302c 100755 --- a/ldap-site-mngmt/webinterface/au/au.dwt +++ b/ldap-site-mngmt/webinterface/au/au.dwt @@ -5,18 +5,18 @@ <link rel='stylesheet' href='../styles.css' type='text/css'></head> <body> -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> <tr> - <td width='35%'> + <td width='30%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> - <td width='40%'> + <td width='45%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top' align='left'> <td> @@ -36,16 +36,13 @@ </table> </td> </tr> + <tr> + <td colspan='3'>{MAINMENU}</td> + </tr> </table> -<table cellpadding='5' cellspacing='0' border='0' width='95%' height='7%'> -<tr> - <td>{MAINMENU}</td> -</tr> -</table> - -<hr align='center' width='98%' noshade> - +<!--<hr align='center' width='98%' noshade>--> +<br> <table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'> diff --git a/ldap-site-mngmt/webinterface/au/au_childs.dwt b/ldap-site-mngmt/webinterface/au/au_childs.dwt index a9adbc83..0d37b5c7 100755 --- a/ldap-site-mngmt/webinterface/au/au_childs.dwt +++ b/ldap-site-mngmt/webinterface/au/au_childs.dwt @@ -16,8 +16,8 @@ <!-- BEGIN DYNAMIC BLOCK: Childaus --> <tr> - <td class='tab_d'>{CHILDOU} </td> - <td class='tab_d'>{CHILDDOMAIN} </td> + <td class='tab_d' height='40'>{CHILDOU} </td> + <td class='tab_d' height='40'>{CHILDDOMAIN} </td> </tr> <!-- END DYNAMIC BLOCK: Childaus --> diff --git a/ldap-site-mngmt/webinterface/au/au_footer.inc.php b/ldap-site-mngmt/webinterface/au/au_footer.inc.php index 7849823e..37fa7808 100644 --- a/ldap-site-mngmt/webinterface/au/au_footer.inc.php +++ b/ldap-site-mngmt/webinterface/au/au_footer.inc.php @@ -1,5 +1,7 @@ <?php + + $template->assign(array("PFAD" => $START_PATH)); # Daten in die Vorlage parsen diff --git a/ldap-site-mngmt/webinterface/au/au_header.inc.php b/ldap-site-mngmt/webinterface/au/au_header.inc.php index 40da6c72..57e85f84 100644 --- a/ldap-site-mngmt/webinterface/au/au_header.inc.php +++ b/ldap-site-mngmt/webinterface/au/au_header.inc.php @@ -1,5 +1,7 @@ <?php +################# + # 1. Title $titel = "Administrative Unit Management"; # 2. Mainmenu Number (starting with 0) @@ -32,4 +34,5 @@ $template->assign(array("SEITENTITEL" => $titel, include("au_menu.php"); include("../common/ip_blocks.inc.php"); + ?>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/au/au_menu.php b/ldap-site-mngmt/webinterface/au/au_menu.php index b9c7d8d6..d912c7a5 100644 --- a/ldap-site-mngmt/webinterface/au/au_menu.php +++ b/ldap-site-mngmt/webinterface/au/au_menu.php @@ -134,7 +134,7 @@ function createAUMenu($rollen, $mnr, $auDN,$sbmnr) { <td width='8%'> </td> <td width='8%' align='right'><img src='../pics/".$zwisch.".gif'></td> <td width='74%' align='left' style='border-width:1 1 1 1;border-color:#000000;border-style:solid;padding:4;padding-left:25px;background-color:{FARBE_S}'> - <a href='".$item2['link']."' style='text-decoration:none'><b class='standard_schrift'>".$item2['text']."</b></a></td> + <a href='".$item2['link']."' style='text-decoration:none'><code class='submenue_schrift'>".$item2['text']."</code></a></td> <td width='10%'> </td> </tr>"; diff --git a/ldap-site-mngmt/webinterface/au/childau_add.php b/ldap-site-mngmt/webinterface/au/childau_add.php index 89969882..47fb9b55 100644 --- a/ldap-site-mngmt/webinterface/au/childau_add.php +++ b/ldap-site-mngmt/webinterface/au/childau_add.php @@ -47,12 +47,14 @@ if ( $childou != "" && $mainadmin != none && $mainadmin != "") { $childou = preg_replace ( '/\s+([0-9A-Z])/', '$1', $childou); # AU Objekt anlegen - $sisters = get_childau($auDN,array("ou")); + # Test auf gleichnamige Geschwister-AUs + #$sisters = get_childau($auDN,array("ou")); + $sisters = get_all_aus(array("ou")); $sister = 0; foreach ($sisters as $item) { - if ($item['ou'] == $childou) { - $mesg = "Es existiert bereits eine untergeordnete AU mit dem eingegebenen OU!<br> - Bitte geben Sie einen anderen OU ein.<br><br>"; + if ( strtolower($item['ou']) == strtolower($childou) ) { + $mesg = "Es existiert bereits eine AU mit dem eingegebenen 'ou' Namen!<br> + Bitte geben Sie einen anderen 'ou' Namen ein.<br><br>"; $get_childcn = str_replace ( " ", "_", $childcn ); $get_childdesc = str_replace ( " ", "_", $childdesc ); $url = "new_child.php?ou=Hier_andere_OU_eingeben&cn=".$get_childcn."&desc=".$get_childdesc."&childdomain=".$childdomain; diff --git a/ldap-site-mngmt/webinterface/au/menu.dwt b/ldap-site-mngmt/webinterface/au/menu.dwt index 9220c3b3..20631be8 100755 --- a/ldap-site-mngmt/webinterface/au/menu.dwt +++ b/ldap-site-mngmt/webinterface/au/menu.dwt @@ -5,11 +5,13 @@ <!-- BEGIN DYNAMIC BLOCK: Hauptmenu --> <tr valign='middle' align='left'> -
+ <td width='8%' align='right' style="border-style=none;">{ICON}</td> - <td width="8%" align="left" style="border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td>
+ <td width="8%" align="left" style="border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td> <td width="74%" align="left" style="border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> - <a href="{LINK_M}" style="text-decoration:none"><b class="standard_schrift">{TEXT_M}</b></a></td>
+ <a href="{LINK_M}" style="text-decoration:none"> + <code class="submenue_schrift">{TEXT_M}</code> + </a></td> <td width='10%'> </td> </tr> diff --git a/ldap-site-mngmt/webinterface/common/ip_blocks.inc.php b/ldap-site-mngmt/webinterface/common/ip_blocks.inc.php index b1343d3b..17795671 100644 --- a/ldap-site-mngmt/webinterface/common/ip_blocks.inc.php +++ b/ldap-site-mngmt/webinterface/common/ip_blocks.inc.php @@ -3,6 +3,10 @@ # Max und Free IP Blocks $mipb_array = get_maxipblocks_au($auDN); $fipb_array = get_freeipblocks_au($auDN); +#print_r($fipb_array); echo "<br>"; +natsort($mipb_array); +natsort($fipb_array); +#print_r($fipb_array); echo "<br>"; #print_r(count($mipb_array)); echo "<br>"; #print_r(count($fipb_array)); echo "<br>"; $ipblocks = ""; diff --git a/ldap-site-mngmt/webinterface/computers/computers.dwt b/ldap-site-mngmt/webinterface/computers/computers.dwt index 8f52e884..933ab60d 100644 --- a/ldap-site-mngmt/webinterface/computers/computers.dwt +++ b/ldap-site-mngmt/webinterface/computers/computers.dwt @@ -5,18 +5,18 @@ <link rel='stylesheet' href='../styles.css' type='text/css'></head> <body> -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> <tr> - <td width='35%'> + <td width='30%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> - <td width='40%'> + <td width='45%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top' align='left'> <td> @@ -36,16 +36,13 @@ </table> </td> </tr> + <tr> + <td colspan='3'>{MAINMENU}</td> + </tr> </table> -<table cellpadding='5' cellspacing='0' border='0' width='95%' height='7%'> -<tr> - <td>{MAINMENU}</td> -</tr> -</table> - -<hr align='center' width='98%' noshade> - +<!--<hr align='center' width='98%' noshade>--> +<br> <table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'> diff --git a/ldap-site-mngmt/webinterface/computers/computers_menu.php b/ldap-site-mngmt/webinterface/computers/computers_menu.php index 97ff55fa..1ab98526 100644 --- a/ldap-site-mngmt/webinterface/computers/computers_menu.php +++ b/ldap-site-mngmt/webinterface/computers/computers_menu.php @@ -9,16 +9,16 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { if ( $mipb_array[0] == "" ){ $iprechnerlink = "no_ip.php?mnr=2"; }else{ - $iprechnerlink = "ip_rechner.php"; + $iprechnerlink = "ip_rechner.php?sort=ipaddress"; } # Struktur der Registerkartenleiste # Hauptmenu - $hauptmenu = array(array("link" => "computers.php", - "text" => "Übersicht", - "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), - array("link" => "hostoverview.php", - "text" => "Rechner", + $hauptmenu = array( #array("link" => "computers.php", + # "text" => "Übersicht", + # "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), + array("link" => "hostoverview.php?sort=hostname", + "text" => "Übersicht Rechner", "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), array("link" => $iprechnerlink, "text" => "IP Adressen Rechner", @@ -32,9 +32,9 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { #array("link" => "new_mcdef.php", # "text" => "Neue MachineConfig", # "zugriff" => array("MainAdmin","HostAdmin")), - array("link" => "new_pxe.php", - "text" => "Neues PXE Bootmenü", - "zugriff" => array("MainAdmin"))); + array("link" => "pxeconfigs.php", + "text" => "PXE Configs", + "zugriff" => array("MainAdmin","DhcpAdmin"))); # Submenus /*$computers_array = get_hosts($auDN,array("dn","hostname","ou")); @@ -69,13 +69,17 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { "text" => $mcdef_array[$n]['cn'], "zugriff" => array("MainAdmin","DhcpAdmin","HostAdmin")); } + + $newpxe[] = array("link" => "new_pxe.php", + "text" => "Neue PXE Config anlegen", + "zugriff" => array("MainAdmin","DhcpAdmin")); - $submenu = array(array(), + $submenu = array(#array(), $comps, array(), #$groups, #$defmc, - array()); + $newpxe); #echo "submenu: ";print_r($submenu);echo "<br><br>"; # Zusammenstellen der Menuleiste @@ -159,9 +163,9 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { <tr> <td width='8%'> </td> <td width='8%' align='right'><img src='../pics/".$zwisch2.".gif'></td> - <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>
+ <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> <td width='69%' align='left' style='border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:4;padding-left:12px;background-color:{FARBE_S}'> - <a href='".$item2['link']."' style='text-decoration:none'><b class='standard_schrift'>".$item2['text']."</b></a></td> + <a href='".$item2['link']."' style='text-decoration:none'><code class='submenue_schrift'>".$item2['text']."</code></a></td> <td width='10%'> </td> </tr> "; @@ -218,7 +222,7 @@ function createComputersMenu($rollen , $mnr, $auDN, $sbmnr, $mcnr) { $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'> <img style='border-width:0;border-style=none;' src='../pics/plus2.gif'></a>";} diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt index ba9a8872..3bb5e756 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt @@ -4,7 +4,7 @@ <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 1;'><h4>{HOSTLINK} Allgemein </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4><code class='font_object'>DHCP</code></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{RBSLINK} RBS/PXE </a></h4></td> - <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Hardware </a></h4></td> + <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Geo/Hardware </a></h4></td> <td> </td> </tr> <tr> @@ -33,7 +33,7 @@ {HOST_DHCPOPT} - <tr> + <!--<tr> <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Default Lease Time:</b></td> <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> <input type='Text' name='attribs[dhcpoptdefault-lease-time]' value='{DEFAULTLEASE}' size='30' class='medium_form_field'> @@ -46,7 +46,7 @@ <input type='Text' name='attribs[dhcpoptmax-lease-time]' value='{MAXLEASE}' size='30' class='medium_form_field'> <input type='hidden' name='oldattribs[dhcpoptmax-lease-time]' value='{MAXLEASE}'> </td> - </tr> + </tr>--> </table></td> </tr> @@ -56,6 +56,7 @@ <input type='hidden' name='oldfixadd' value='{OLDFIXADD}'> <input type='hidden' name='oldrbs' value='{OLDRBS}'> <input type='hidden' name='hostip' value='{IPADDRESS}'> + <input type='hidden' name='hostmac' value='{HWADDRESS}'> <input type='hidden' name='hostdn' value='{HOSTDN}'> <input type='hidden' name='sbmnr' value='{SBMNR}'> diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.php b/ldap-site-mngmt/webinterface/computers/dhcphost.php index 8a5f67fa..5e64000d 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost.php +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.php @@ -7,7 +7,7 @@ $webseite = "dhcphost.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; @@ -24,9 +24,9 @@ createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); $hostDN = $_GET['dn']; # Rechner Daten -$attributes = array("hostname","domainname","ipaddress","hwaddress","description","hlprbservice", +$attributes = array("hostname","domainname","ipaddress","hwaddress","hlprbservice", "dhcphlpcont","dhcpoptfixed-address","dhcpopthardware","dhcpoptfilename", - "dhcpoptnext-server","dhcpoptmax-lease-time","dhcpoptdefault-lease-time","hw-mouse","hw-graphic","hw-monitor"); + "dhcpoptnext-server","dhcpoptmax-lease-time","dhcpoptdefault-lease-time"); $host = get_node_data($hostDN,$attributes); $hostip = explode('_',$host['ipaddress']); # print_r($hostip); echo "<br><br>"; @@ -145,9 +145,9 @@ if ($dhcphlpcont == ""){ <td class='tab_d_ohne'> </td> </tr> <tr valign='top'> - <td class='tab_d_ohne'><b>fixed-address:</b> </td> - <td class='tab_d_ohne'>".$fixedaddress." </td> - <td class='tab_d_ohne'> + <td class='tab_d'><b>fixed-address:</b> </td> + <td class='tab_d'>".$fixedaddress." </td> + <td class='tab_d'> <select name='fixadd' size='3' class='medium_form_selectbox'> ".$fixedaddselopt." </select> @@ -158,16 +158,15 @@ if ($dhcphlpcont == ""){ $template->assign(array("HOSTDN" => $hostDN, "HOSTNAME" => $host['hostname'], - "DOMAINNAME" => $host['domainname'], + #"DOMAINNAME" => $host['domainname'], "HWADDRESS" => $host['hwaddress'], "IPADDRESS" => $hostip[0], - "DESCRIPTION" => $host['description'], "OLDDHCP" => $objectDN, "OLDFIXADD" => $host['dhcpoptfixed-address'], - "OLDRBS" => $rbsDN, + "OLDRBS" => $rbsDN, "DHCPCONT" => $dhcp, - "HOST_DHCPOPT" => $host_dhcpopt, - "NEXTSERVER" => $host['dhcpoptnext-server'], + "HOST_DHCPOPT" => $host_dhcpopt, + "NEXTSERVER" => $host['dhcpoptnext-server'], "FILENAME" => $host['dhcpoptfilename'], "DEFAULTLEASE" => $dhcpdefaultlease, "MAXLEASE" => $dhcpmaxlease, diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php index 9cd71f41..cbfa7f9f 100644 --- a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php +++ b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php @@ -6,12 +6,13 @@ $syntax = new Syntaxcheck; $dhcp = $_POST['dhcpcont']; $olddhcp = $_POST['olddhcp']; +$hostDN = $_POST['hostdn']; $hostip = $_POST['hostip']; +$hostmac = $_POST['hostmac']; $fixedaddress = $_POST['fixadd']; $oldfixedaddress = $_POST['oldfixadd']; $oldrbs = $_POST['oldrbs']; -$hostDN = $_POST['hostdn']; $sbmnr = $_POST['sbmnr']; $dhcp = htmlentities($dhcp); @@ -55,7 +56,7 @@ echo " <tr><td>"; ########################################## -# DHCP +# DHCP Einbindung if ($dhcp != "none" && $dhcp != $olddhcp){ if ($dhcp != ""){ @@ -73,16 +74,21 @@ if ($dhcp != "none" && $dhcp != $olddhcp){ $mesg = "Fehler beim ändern des DHCP Dienstes zu <b>".$dhcpcn."</b>!<br><br>"; } }else{ - if ( $hostip != "" ){ - $entrydhcp ['dhcpoptfixed-address'] = "ip"; - } - echo "DHCP add "; print_r($entrydhcp); echo "<br>"; - if ($result = ldap_mod_add($ds,$hostDN,$entrydhcp)){ - update_dhcpmtime(array()); - $mesg = "Rechner erfolgreich in DHCP <b>".$dhcpcn." [Abt.: ".$dhcpau."]</b> angemeldet<br><br>"; - }else{ - $mesg = "Fehler beim ändern des DHCP Dienstes zu <b>".$dhcpcn."</b>!<br><br>"; - } + if ( $hostmac != ""){ + if ( $hostip != "" ){ + $entrydhcp ['dhcpoptfixed-address'] = "ip"; + } + echo "DHCP add "; print_r($entrydhcp); echo "<br>"; + if ($result = ldap_mod_add($ds,$hostDN,$entrydhcp)){ + update_dhcpmtime(array()); + $mesg = "Rechner erfolgreich in DHCP <b>".$dhcpcn." [Abt.: ".$dhcpau."]</b> angemeldet<br><br>"; + }else{ + $mesg = "Fehler beim ändern des DHCP Dienstes zu <b>".$dhcpcn."</b>!<br><br>"; + } + }else{ + $mesg = "Es ist keine MAC Adresse für den Rechner eingetragen.<br> + Dies ist jedoch Voraussetzung für einen DHCP Eintrag.<br><br>"; + } } }else{ $entrydhcp ['dhcphlpcont'] = array(); @@ -106,7 +112,10 @@ if ($dhcp == "none"){ echo " DHCP none <br>"; } + +############################# # DHCP Option fixed-address + if ($fixedaddress != "none" && $fixedaddress != $oldfixedaddress){ if ($fixedaddress != ""){ $entryfixadd ['dhcpoptfixed-address'] = $fixedaddress; @@ -140,78 +149,81 @@ if ($fixedaddress != "none" && $fixedaddress != $oldfixedaddress){ } ##################################### -# Restliche Attribute (u.a. Description) - -$entryadd = array(); -$entrymod = array(); -$entrydel = array(); +# Restliche Attribute ... -foreach (array_keys($atts) as $key){ +#if (count($atts) != 0){ - if ( $oldatts[$key] == $atts[$key] ){ + $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]; + } } - 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,$hostDN,$entryadd)){ - $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>"; - update_dhcpmtime(array()); - }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,$hostDN,$entrymod)){ - $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>"; - update_dhcpmtime(array()); - }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 (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,$hostDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>"; + update_dhcpmtime(array()); + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>"; + } } - if(ldap_mod_del($ds,$hostDN,$entrydel)){ - $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>"; - update_dhcpmtime(array()); - }else{ - $mesg = "Fehler beim loeschen der Attribute ".$delatts."<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,$hostDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>"; + update_dhcpmtime(array()); + }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,$hostDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>"; + update_dhcpmtime(array()); + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>"; + } + } + +#} ##################### diff --git a/ldap-site-mngmt/webinterface/computers/host.dwt b/ldap-site-mngmt/webinterface/computers/host.dwt index 729e6d64..4b3780a2 100644 --- a/ldap-site-mngmt/webinterface/computers/host.dwt +++ b/ldap-site-mngmt/webinterface/computers/host.dwt @@ -4,7 +4,7 @@ <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 1;'><h4><code class='font_object'>Allgemein</code></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{DHCPLINK} DHCP </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{RBSLINK} RBS/PXE </a></h4></td> - <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Hardware </a></h4></td> + <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Geo/Hardware </a></h4></td> <td> </td> </tr> <tr> diff --git a/ldap-site-mngmt/webinterface/computers/host.php b/ldap-site-mngmt/webinterface/computers/host.php index 1778ffbb..454847bb 100644 --- a/ldap-site-mngmt/webinterface/computers/host.php +++ b/ldap-site-mngmt/webinterface/computers/host.php @@ -7,7 +7,7 @@ $webseite = "host.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; diff --git a/ldap-site-mngmt/webinterface/computers/host_change.php b/ldap-site-mngmt/webinterface/computers/host_change.php index f32daef3..63e64f8a 100644 --- a/ldap-site-mngmt/webinterface/computers/host_change.php +++ b/ldap-site-mngmt/webinterface/computers/host_change.php @@ -79,34 +79,44 @@ if ( $oldhostname == $hostname ){ } if ( $oldhostname != "" && $hostname != "" && $oldhostname != $hostname ){ - echo "Hostname aendern<br>"; - # hier noch Syntaxcheck - # Formulareingaben anpassen - $exphn = explode(" ",$hostname); - foreach ($exphn as $word){$expuc[] = ucfirst($word);} - $hostname = implode(" ",$expuc); - $hostname = preg_replace ( '/\s+([0-9A-Z])/', '$1', $hostname); - - $newhostDN = "hostname=".$hostname.",cn=computers,".$auDN; - # print_r($newhostDN); echo "<br><br>"; - modify_host_dn($hostDN, $newhostDN); - $hostDN = $newhostDN; - - # newsubmenu holen...hosts neu holen, sortieren, ->position - #$newhosts = get_hosts($auDN,array("dn")); - #print_r($newhosts); echo "<br><br>"; - #foreach ($newhosts as $item){ - # $newdnarray [] = $item['dn']; - #} - #$key = array_search($newhostDN, $newdnarray); - #print_r($key); echo "<br>"; - - $url = 'host.php?dn='.$newhostDN.'&sbmnr='.$sbmnr; - + echo "Hostname ändern<br><br>"; + # Check ob Host schon existiert in AU/Domain + $brothers = get_hosts($auDN,array("hostname"),""); + if ( check_hostname($hostname) ){ + $url = "hostoverview.php"; + $mesg = "Es existiert bereits ein Rechner mit dem Namen $hostname!<br><br> + Bitte geben Sie einen anderen Namen ein, oder löschen + Sie zunächst den gleichnamigen Rechner.<br><br> + <a href=".$url." style='publink'><< Übersicht Rechner</a>"; + redirect(4, $url, $mesg, $addSessionId = TRUE); + die; + }else{ + # Formulareingaben anpassen + $exphn = explode(" ",$hostname); + foreach ($exphn as $word){$expuc[] = ucfirst($word);} + $hostname = implode(" ",$expuc); + $hostname = preg_replace ( '/\s+([0-9A-Z])/', '$1', $hostname); + + $newhostDN = "hostname=".$hostname.",cn=computers,".$auDN; + # print_r($newhostDN); echo "<br><br>"; + modify_host_dn($hostDN, $newhostDN); + $hostDN = $newhostDN; + + # newsubmenu holen...hosts neu holen, sortieren, ->position + #$newhosts = get_hosts($auDN,array("dn")); + #print_r($newhosts); echo "<br><br>"; + #foreach ($newhosts as $item){ + # $newdnarray [] = $item['dn']; + #} + #$key = array_search($newhostDN, $newdnarray); + #print_r($key); echo "<br>"; + + $url = 'host.php?dn='.$newhostDN.'&sbmnr='.$sbmnr; + } } if ( $oldhostname != "" && $hostname == "" ){ - echo "Hostname loeschen!<br> + echo "Hostname löschen!<br>>br> Dies ist Teil des DN, Sie werden den Rechner komplett löschen<br><br>"; echo "Wollen Sie den Rechner <b>".$oldhostname."</b> mit seinen Hardware-Profilen (MachineConfigs) und PXE Bootmenüs wirklich löschen?<br><br> @@ -214,9 +224,15 @@ if ( $oldmac != "" && $mac == "" ){ } else{ $entry['hwaddress'] = $oldmac; + $dhcptext = ""; + if ($dhcphlpcont != ""){ + $entry['dhcphlpcont'] = array(); + $dhcptext = "Da die MAC-Adresse Voruassetzung für den + Eintrag DHCP Dienst ist, wurde der Client dort ausgetragen.<br>"; + } $result = ldap_mod_del($ds,$hostDN,$entry); if($result){ - $mesg = "MAC erfolgreich geloescht<br><br>"; + $mesg = "MAC erfolgreich geloescht.<br>$dhcptext<br>"; }else{ $mesg = "Fehler beim loeschen der MAC<br><br>"; } diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt index 50694f46..2771ff76 100644 --- a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt @@ -1,20 +1,26 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='2'><h3>Rechner <code class='font_object'>{AU}</code> </h3></td> + <td width='80%'> + <h3>Rechner <code class='font_object'>{AU}</code> </h3> + Übersicht der in <b>AU {AU}</b> angelegten <b>Rechnerobjekte</b> und Informationen zu diesen:<br> + Rechnername, IP/MAC Adresse, Status und Art der Einbindung in die zentralen Dienste DHCP / PXE-Remote-Boot (RBS) und eine Beschreibung.<br><br> + Zur <b>Verwaltungsmaske</b> eines bestimmten Rechners gelangen Sie durch klicken auf entsprechenden Rechnernamen.<br> + Die <b>Eingabemaske</b> für einen <b>neuen Rechner</b> erreichen Sie über den Menüpunkt links: "Neuen Rechner anlegen". + </td> + <td> </td> </tr> <tr> <td height='10'></td> </tr> - <tr><td> + <tr><td colspan='2'> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> - <td width='18%' class='tab_h'><b>Rechnername</b></td> - <td width='14%' class='tab_h'><b>IP Adresse</b></td> - <td width='20%' class='tab_h'><b>MAC Adresse</b></td> - <td width='15%' class='tab_h'><b>DHCP</b></td> - <td width='10%' class='tab_h'> </td> - <td width='13%' class='tab_h'><b>RBS</b></td> - <td width='10%' class='tab_h'> </td> + <td width='17%' class='tab_h'><b><a href='hostoverview.php?sort=hostname' class='headerlink'>Rechnername</a></b></td> + <td width='13%' class='tab_h'><b><a href='hostoverview.php?sort=ipaddress' class='headerlink'>IP Adresse</a></b></td> + <td width='17%' class='tab_h'><b>MAC Adresse</b></td> + <td width='9%' class='tab_h'><b>DHCP</b></td> + <td width='16%' class='tab_h'><b>RBS</b></td> + <td width='29%' class='tab_h'><b>Beschreibung des Rechners</b></td> </tr> <!-- BEGIN DYNAMIC BLOCK: Rechner --> @@ -22,23 +28,13 @@ <td class='tab_d'><b>{HOSTNAME}</b> </td> <td class='tab_d'>{IPADDRESS} </td> <td class='tab_d'>{HWADDRESS} </td> - <td class='tab_d'>{DHCPCONT} </td> <td class='tab_d'>{FIXADD} </td> <td class='tab_d'>{RBSCONT} </td> - <td class='tab_d'>{NXTSRV} </td> + <td class='tab_d'>{DESC} </td> </tr> <!-- END DYNAMIC BLOCK: Rechner --> </table></td> </tr> - <tr> - <td height='10'></td> - </tr> - <tr> - <td> - Zum Verwalten eines bestimmten Rechners, wählen Sie links entsprechenden Submenü-Eintrag.<br> - Um einen neuen Rechner anzulegen wählen Sie links "Neuer Rechner" - </td> - </tr> - + </table>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.php b/ldap-site-mngmt/webinterface/computers/hostoverview.php index b59dbea6..b1728002 100644 --- a/ldap-site-mngmt/webinterface/computers/hostoverview.php +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.php @@ -7,7 +7,7 @@ $webseite = "hostoverview.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; @@ -19,18 +19,26 @@ createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); ################################################################################### +$sort = "hostname"; +$sort = $_GET['sort']; + $template->assign(array("DN" => "", "HOSTNAME" => "Noch keine Rechner angelegt", "DOMAINNAME" => "", "HWADDRESS" => "", - "IPADDRESS" => "", + "IPADDRESS" => "", "DHCPCONT" => "", "FIXADD" => "", - "RBSCONT" => "", - "NXTSRV" => "")); + "DESC" => "", + "RBSCONT" => "")); + +$attributes = array("dn","hostname","domainname","hwaddress","ipaddress","description","dhcphlpcont","dhcpoptfixed-address","hlprbservice","dhcpoptnext-server"); +$host_array = get_hosts($auDN,$attributes,$sort); +#print_r($host_array); -$attributes = array("dn","hostname","domainname","hwaddress","ipaddress","dhcphlpcont","dhcpoptfixed-address","hlprbservice","dhcpoptnext-server"); -$host_array = get_hosts($auDN,$attributes); +if ($sort == "ipaddress"){ + $host_array = array_natsort($host_array, "ipaddress", "ipaddress"); +} $template->define_dynamic("Rechner", "Webseite"); @@ -41,7 +49,7 @@ foreach ($host_array as $host){ $hostip = explode('_',$host['ipaddress']); $dhcpcont = ""; - $dhcpfixadd = ""; + $dhcpfixadd = "-"; if ( count($host['dhcphlpcont']) != 0 ){ $dhcpexpdn = ldap_explode_dn($host['dhcphlpcont'],1); $dhcpcn = $dhcpexpdn[0]; @@ -62,25 +70,25 @@ foreach ($host_array as $host){ } - - $rbscont = ""; + $rbscont = "-"; $dhcpnxtsrv = ""; if ( count($host['hlprbservice']) != 0 ){ $rbsexpdn = ldap_explode_dn($host['hlprbservice'],1); - $rbscont = $rbsexpdn[0]." <br>[".$rbsexpdn[2]."]"; + $dhcpnxtsrv = $host['dhcpoptnext-server']; + $rbscont = $rbsexpdn[0]." <br>[".$dhcpnxtsrv."]"; + - $dhcpnxtsrv = $host['dhcpoptnext-server']; } $template->assign(array("DN" => $host['dn'], "HOSTNAME" => $hostname, "DOMAINNAME" => $host['domainname'], "HWADDRESS" => $host['hwaddress'], - "IPADDRESS" => $hostip[0], + "IPADDRESS" => $hostip[0], "DHCPCONT" => $dhcpcont, "FIXADD" => $dhcpfixadd, "RBSCONT" => $rbscont, - "NXTSRV" => $dhcpnxtsrv, + "DESC" => $host['description'], "AUDN" => $auDN )); $template->parse("RECHNER_LIST", ".Rechner"); diff --git a/ldap-site-mngmt/webinterface/computers/hwhost.dwt b/ldap-site-mngmt/webinterface/computers/hwhost.dwt index c32c70c4..48c2cd1c 100644 --- a/ldap-site-mngmt/webinterface/computers/hwhost.dwt +++ b/ldap-site-mngmt/webinterface/computers/hwhost.dwt @@ -4,14 +4,14 @@ <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 1;'><h4>{HOSTLINK} Allgemein </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{DHCPLINK} DHCP </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{RBSLINK} RBS/PXE </a></h4></td> - <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4><code class='font_object'>Hardware</code></h4></td> + <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4><code class='font_object'>Geo/Hardware</code></h4></td> <td> </td> </tr> <tr> <td height='20'></td> </tr> <tr> - <td colspan='5'><h3>Hardware Optionen - Rechner <code class='font_object'> {HOSTNAME} </code> </h3></td> + <td colspan='5'><h3>Geo / Hardware Optionen - Rechner <code class='font_object'> {HOSTNAME} </code> </h3></td> </tr> <tr><td colspan='5'> @@ -20,11 +20,25 @@ <form action='hwhost_change.php' method='post'> <tr> - <td width='45%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> - <td width='55%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> + <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> + <td width='65%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> </tr> <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Geographic Location </b> (Gebäude, Raum, ...) <b>:</b></td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='attribs[geolocation]' value='{GEOLOC}' size='50' class='medium_form_field'> + <input type='hidden' name='oldattribs[geolocation]' value='{GEOLOC}'> + </td> + </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Geo Coordinates: </b> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='attribs[geoattribut]' value='{GEOATT}' size='50' class='medium_form_field'> + <input type='hidden' name='oldattribs[geoattribut]' value='{GEOATT}'> + </td> + </tr> + <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>HW Mouse: </b> </td> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='attribs[hw-mouse]' value='{MOUSE}' size='30' class='medium_form_field'> diff --git a/ldap-site-mngmt/webinterface/computers/hwhost.php b/ldap-site-mngmt/webinterface/computers/hwhost.php index 0f6cc300..e0b1f7f8 100644 --- a/ldap-site-mngmt/webinterface/computers/hwhost.php +++ b/ldap-site-mngmt/webinterface/computers/hwhost.php @@ -7,7 +7,7 @@ $webseite = "hwhost.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; @@ -24,7 +24,7 @@ createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); $hostDN = $_GET['dn']; $attributes = array("hostname","domainname","ipaddress","hwaddress","description","dhcphlpcont", - "hw-mouse","hw-graphic","hw-monitor"); + "hw-mouse","hw-graphic","hw-monitor","geolocation","geoattribut"); $host = get_node_data($hostDN,$attributes); $hostip = explode('_',$host['ipaddress']); @@ -33,11 +33,13 @@ $template->assign(array("HOSTDN" => $hostDN, "DOMAINNAME" => $host['domainname'], "HWADDRESS" => $host['hwaddress'], "IPADDRESS" => $hostip[0], - "DESCRIPTION" => $host['description'], - "DHCPCONT" => $host['dhcphlpcont'], - "MOUSE" => $host['hw-mouse'], + "DESCRIPTION" => $host['description'], + "DHCPCONT" => $host['dhcphlpcont'], + "GEOLOC" => $host['geolocation'], + "GEOATT" => $host['geoattribut'], + "MOUSE" => $host['hw-mouse'], "GRAPHIC" => $host['hw-graphic'], - "MONITOR" => $host['hw-monitor'], + "MONITOR" => $host['hw-monitor'], "DHCPLINK" => "<a href='dhcphost.php?dn=".$hostDN."&sbmnr=".$sbmnr."' class='headerlink'>", "HOSTLINK" => "<a href='host.php?dn=".$hostDN."&sbmnr=".$sbmnr."' class='headerlink'>", "RBSLINK" => "<a href='rbshost.php?dn=".$hostDN."&sbmnr=".$sbmnr."' class='headerlink'>", diff --git a/ldap-site-mngmt/webinterface/computers/hwhost_change.php b/ldap-site-mngmt/webinterface/computers/hwhost_change.php index 678471a4..83ab270d 100644 --- a/ldap-site-mngmt/webinterface/computers/hwhost_change.php +++ b/ldap-site-mngmt/webinterface/computers/hwhost_change.php @@ -104,7 +104,7 @@ if (count($entrydel) != 0 ){ } } -update_dhcpmtime(); +#update_dhcpmtime(array()); $mesg .= "<br>Sie werden automatisch auf die vorherige Seite zurückgeleitet. <br> diff --git a/ldap-site-mngmt/webinterface/computers/ip_rechner.dwt b/ldap-site-mngmt/webinterface/computers/ip_rechner.dwt index b300e88e..88d67316 100644 --- a/ldap-site-mngmt/webinterface/computers/ip_rechner.dwt +++ b/ldap-site-mngmt/webinterface/computers/ip_rechner.dwt @@ -8,8 +8,8 @@ <tr><td> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Rechner Name</b></td> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>IP Adresse</b></td> + <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b><a href='ip_rechner.php?sort=hostname' class='headerlink'>Rechner Name</a></b></td> + <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b><a href='ip_rechner.php?sort=ipaddress' class='headerlink'>IP Adresse</a></b></td> <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>DHCP</b></td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/ip_rechner.php b/ldap-site-mngmt/webinterface/computers/ip_rechner.php index 5870f503..fcc04883 100644 --- a/ldap-site-mngmt/webinterface/computers/ip_rechner.php +++ b/ldap-site-mngmt/webinterface/computers/ip_rechner.php @@ -9,7 +9,7 @@ include('computers_header.inc.php'); ############################################################################# -$mnr = 2; +$mnr = 1; $sbmnr = -1; $mcnr = -1; @@ -19,6 +19,9 @@ createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); ############################################################################# +$sort = "hostname"; +$sort = $_GET['sort']; + $template->assign(array("IP" => "", "OLDIP" => "", "DHCPCONT" => "", @@ -26,9 +29,13 @@ $template->assign(array("IP" => "", "HOSTNAME" => "Noch keine Rechner angelegt", "HOSTDN" => "")); -$host_array = get_hosts($auDN,array("dn","hostname","ipaddress","dhcphlpcont","dhcpoptfixed-address")); +$host_array = get_hosts($auDN,array("dn","hostname","ipaddress","dhcphlpcont","dhcpoptfixed-address"),$sort); # print_r ($host_array); +if ($sort == "ipaddress"){ + $host_array = array_natsort($host_array, "ipaddress", "ipaddress"); +} + $template->define_dynamic("Hosts", "Webseite"); foreach ($host_array as $host){ diff --git a/ldap-site-mngmt/webinterface/computers/menu.dwt b/ldap-site-mngmt/webinterface/computers/menu.dwt index 6cb4e63e..7d316674 100644 --- a/ldap-site-mngmt/webinterface/computers/menu.dwt +++ b/ldap-site-mngmt/webinterface/computers/menu.dwt @@ -5,12 +5,15 @@ <!-- BEGIN DYNAMIC BLOCK: Hauptmenu --> <tr valign='middle' align='left'> -
+ <td width='8%' align='right' style="border-style=none;">{ICON}</td> <td width="8%" align="left" style="border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td> - <td width="5%" align="left" style="border-width:1 0 1 0;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td>
+ <td width="5%" align="left" style="border-width:1 0 1 0;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td> <td width="69%" align="left" style="border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> - <a href="{LINK_M}" style="text-decoration:none"><b class="standard_schrift">{TEXT_M}</b></a></td>
+ <a href="{LINK_M}" style="text-decoration:none"> + <code class="submenue_schrift">{TEXT_M}</code> + </a> + </td> <td width='10%'> </td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/new_host.dwt b/ldap-site-mngmt/webinterface/computers/new_host.dwt index 43625f57..e2ae50ba 100644 --- a/ldap-site-mngmt/webinterface/computers/new_host.dwt +++ b/ldap-site-mngmt/webinterface/computers/new_host.dwt @@ -1,10 +1,10 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> - <tr> - <td colspan='2'><h3>Neuen Rechner anlegen:</h3></td> - </tr> - <tr> - <td height='20'></td> - </tr> + <tr> + <td> + <h3>Neuer Rechner in <code class='font_object'>{AU}</code> anlegen:</h3> + + </td> + </tr> <tr><td> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> @@ -57,6 +57,26 @@ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <input type='Text' name='ip' value='{IP}' size='15' maxlength='15' class='medium_form_field'> </td> + </tr><tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>DHCP: </b> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <select name='dhcpcont' size='2' class='medium_form_selectbox'> + <option selected value='none'>----------</option> + {DHCPSELECT} + </select> + </td> + </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Geographic Location </b> (Gebäude, Raum, ...) <b>:</b> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='attribs[geolocation]' value='{GEOLOC}' size='30' class='medium_form_field'> + </td> + </tr> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Geo Coordinates: </b> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <input type='Text' name='attribs[geoattribut]' value='{GEOATT}' size='30' class='medium_form_field'> + </td> </tr> <tr> <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>HW Mouse: </b> </td> @@ -76,15 +96,7 @@ <input type='Text' name='attribs[hw-monitor]' value='{MONITOR}' size='30' class='medium_form_field'> </td> </tr> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>DHCP: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <select name='dhcpcont' size='2' class='medium_form_selectbox'> - <option selected value='none'>----------</option> - {DHCPSELECT} - </select> - </td> - </tr> + </table></td> </tr> diff --git a/ldap-site-mngmt/webinterface/computers/new_host.php b/ldap-site-mngmt/webinterface/computers/new_host.php index ad20b092..4ac144bc 100644 --- a/ldap-site-mngmt/webinterface/computers/new_host.php +++ b/ldap-site-mngmt/webinterface/computers/new_host.php @@ -7,7 +7,7 @@ $webseite = "new_host.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; @@ -43,6 +43,8 @@ $template->assign(array("HOSTNAME" => $hostname, "MAC" => $mac, "IP" => $ip, "DHCPSELECT" => $dhcp_selectbox, + "GEOLOC" => "", + "GEOATT" => "", "MOUSE" => "", "GRAPHIC" => "", "MONITOR" => "", diff --git a/ldap-site-mngmt/webinterface/computers/new_pxe.dwt b/ldap-site-mngmt/webinterface/computers/new_pxe.dwt index 2a50e977..5bb7eee4 100644 --- a/ldap-site-mngmt/webinterface/computers/new_pxe.dwt +++ b/ldap-site-mngmt/webinterface/computers/new_pxe.dwt @@ -19,9 +19,9 @@ </td> </tr> <!--<tr valign='top'> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Remote Boot Dienst <br> - auswählen: </b> </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td width='30%' class='tab_d'><b>Remote Boot Dienst <br> + auswählen: </b> </td> + <td colspan='2' class='tab_d'> <select name='rbs' size='5' class='medium_form_selectbox'> <option selected value='none'>----------</option> @@ -33,9 +33,9 @@ </td> </tr>--> <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Ziel Objekt:</b><br> + <td class='tab_d'><b>Ziel Objekt:</b><br> (Mehrfachauswahl möglich) </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td colspan='2' class='tab_d'> <select name='targets[]' size='8' multiple class='medium_form_selectbox'> <option selected value='none'>----- RECHNER spezif. PXE -----</option> <!-- BEGIN DYNAMIC BLOCK: Hosts --> @@ -50,8 +50,8 @@ </td> </tr> <tr valign='top'> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Gültigkeitsdauer <br>(Time Range): </b> </td> - <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td width='30%' class='tab_d'><b>Gültigkeitsdauer <br>(Time Range): </b> </td> + <td width='40%' class='tab_d'> <input type='Text' name='pxeday' value='{PXEDAY}' size='5' maxlength='5' class='medium_form_field'> <br> Eines der folgenden:<br> @@ -61,7 +61,7 @@ - <b>Wochentag</b> (Format: MO, DI, ... , SO) <br> - <b>X</b> für <b>täglich</b> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td width='30%' class='tab_d'> <input type='Text' name='pxebeg' value='{PXEBEG}' size='2' maxlength='2' class='medium_form_field'> <b><font size='+1'>:00</b> - </font> <input type='Text' name='pxeend' value='{PXEEND}' size='2' maxlength='2' class='medium_form_field'> @@ -85,86 +85,76 @@ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td> - <td width='70%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td> + <td width='30%' class='tab_h'><b>Attribut</b></td> + <td width='70%' class='tab_h'><b>Wert</b></td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Default: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[default]' value='{DEFAULT}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[default]' value='{DEFAULT}'> + <td class='tab_d'><b>Default: </b> </td> + <td class='tab_d'> + <select name='attribs[default]' size='2' class='small_form_selectbox'> + <option selected value='vesamenu.c32'>vesamenu.c32</option> + <option value='menu.c32'>menu.c32</option> + </select> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Title: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d'><b>Menu Title: </b> </td> + <td class='tab_d'> <input type='Text' name='attribs[menutitle]' value='{MENTIT}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[menutitle]' value='{MENTIT}'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Master Passwd: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[menumasterpasswd]' value='{MENMPW}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[menumasterpasswd]' value='{MENMPW}'> + <td class='tab_d'><b>Menu Master Passwd: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[menumasterpasswd]' value='{MENMPW}' size='20' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Timeout: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[timeout]' value='{TIMEOUT}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[timeout]' value='{TIMEOUT}'> + <td class='tab_d'><b>Timeout: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[timeout]' value='{TIMEOUT}' size='10' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>No Escape: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[noescape]' value='{NOESC}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[noescape]' value='{NOESC}'> + <td class='tab_d'><b>No Escape: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[noescape]' value='{NOESC}' size='10' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Prompt: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[prompt]' value='{PROMPT}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[prompt]' value='{PROMPT}'> + <td class='tab_d'><b>Prompt: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[prompt]' value='{PROMPT}' size='10' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Allow Options: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[allowoptions]' value='{ALLOW}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[allowoptions]' value='{ALLOW}'> + <td class='tab_d'><b>Allow Options: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[allowoptions]' value='{ALLOW}' size='10' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>On Error: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[onerror]' value='{ONERR}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[onerror]' value='{ONERR}'> + <td class='tab_d'><b>On Error: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[onerror]' value='{ONERR}' size='20' class='medium_form_field'> </td> </tr> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>ON Timeout: </b> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <input type='Text' name='attribs[ontimeout]' value='{ONTIME}' size='30' class='medium_form_field'> - <input type='hidden' name='oldattribs[ontimeout]' value='{ONTIME}'> + <td class='tab_d'><b>ON Timeout: </b> </td> + <td class='tab_d'> + <input type='Text' name='attribs[ontimeout]' value='{ONTIME}' size='20' class='medium_form_field'> </td> </tr> - <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Client-Conf Dateiname <br>(File URI): </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <!--<tr> + <td class='tab_d'><b>Client-Conf Dateiname <br>(File URI): </td> + <td class='tab_d'> <input type='Text' name='conffile' value='{FILEURI}' size='50' class='medium_form_field'> </td> - </tr> + </tr>--> - <input type='hidden' name='nodedn' value='{NODEDN}'> - <input type='hidden' name='oldpxecn' value='{PXECN}'> <input type='hidden' name='mnr' value='{MNR}'> - <input type='hidden' name='sbmnr' value='{SBMNR}'> - <input type='hidden' name='mcnr' value='{MCNR}'> </table></td> </tr> <tr> diff --git a/ldap-site-mngmt/webinterface/computers/new_pxe.php b/ldap-site-mngmt/webinterface/computers/new_pxe.php index a6f479e3..3c4be824 100644 --- a/ldap-site-mngmt/webinterface/computers/new_pxe.php +++ b/ldap-site-mngmt/webinterface/computers/new_pxe.php @@ -8,14 +8,11 @@ $webseite = "new_pxe.dwt"; include('computers_header.inc.php'); $mnr = 2; -$sbmnr = -1; +$sbmnr = 0; $mcnr = -1; ################################################################################### -$sbmnr = $_GET['sbmnr']; -$mcnr = $_GET['mcnr']; - # Menuleisten erstellen createMainMenu($rollen, $mainnr); createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); @@ -31,38 +28,31 @@ $template->assign(array("PXECN" => $pxecn, "PXEDAY" => $pxeday, "PXEBEG" => $pxebeg, "PXEEND" => $pxeend, - # "LDAPURI" => "", - "FILEURI" => "", + #"FILEURI" => "", "RBS" => "", "RBSAU" => "", - "NFS" => "", - "NFSROOT" => "", - "TFTP" => "", - "TFTPROOT" => "", - "FILE" => "", - "ALLOW" => "", - "CONSOLE" => "", - "DEFAULT" => "menu.c32", - "DISPLAY" => "", - "FONT" => "", + "FILE" => "", + "ALLOW" => "", + #"CONSOLE" => "", + #"DISPLAY" => "", + #"FONT" => "", "IMPLICIT" => "", - "KBDMAP" => "", + #"KBDMAP" => "", "MENMPW" => "", - "MENTIT" => "", + "MENTIT" => "", "NOESC" => "1", - "ONERR" => "", + "ONERR" => "", "ONTIME" => "", - "PROMPT" => "0", - "SAY" => "", + "PROMPT" => "0", + #"SAY" => "", "SERIAL" => "", - "TIMEOUT" => "600", + "TIMEOUT" => "600", "NODEDN" => "cn=rbs,".$auDN, "HDN" => "none", "HN" => "", "GDN" => "none", "GN" => "", - "MNR" => $mnr, - "SBMNR" => $sbmnr)); + "MNR" => $mnr)); ############################################# # RB Dienste holen @@ -93,7 +83,7 @@ $template->define_dynamic("Altrbs", "Webseite"); $hostorgroup = $exp[0]; $hgexp = explode('=',$exp[0]); -$hosts_array = get_hosts($auDN,array("dn","hostname","hlprbservice","hwaddress")); +$hosts_array = get_hosts($auDN,array("dn","hostname","hlprbservice","hwaddress"),""); if ( count($hosts_array) != 0 ){ $template->define_dynamic("Hosts", "Webseite"); foreach ($hosts_array as $item){ diff --git a/ldap-site-mngmt/webinterface/computers/pxe.dwt b/ldap-site-mngmt/webinterface/computers/pxe.dwt index e20f8711..8ce34d26 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe.dwt +++ b/ldap-site-mngmt/webinterface/computers/pxe.dwt @@ -1,7 +1,7 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='4' height='20'><h4><a href='{NODETYP}.php?dn={NODEDN}&mnr=1&sbmnr={SBMNR}&mcnr=-1' class='headerlink'><< Zurück zu Rechner {NODE}</a></h4></td> + <td colspan='4' height='20'><h4><a href='pxeconfigs.php' class='headerlink'><< Zurück zur Übersicht PXE Configs</a></h4></td> </tr> <tr> <td height='20'> </td> @@ -19,32 +19,63 @@ <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{BMLINK} Bootmenue </a></h4></td> <td> </td> </tr> - <tr> - <td height='20'></td> - </tr> - - <tr> - <td colspan='4'><h4>Allgemeine Parameter der PXE Konfiguration:</h4></td> + <tr> + <td height='40'></td> </tr> + <tr><td colspan='4'> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> - + <form action='pxe_change.php' method='post'> + <tr> - <td width='25%' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Bitte ohne Leerzeichen eingeben) </td> - <td width='5%' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'> </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'> + <td width='25%' class='tab_d'><b>Eindeutiger Name (cn):</b><br>(Bitte ohne Leerzeichen eingeben) </td> + <td width='5%' class='tab_d'> </td> + <td colspan='2' class='tab_d'> <font size='+2'><b>PXE_</b></font><input type='Text' name='pxecn' value='{PXECN}' size='50' class='medium_form_field'> <input type='hidden' name='oldpxecn' value='{PXECN}'> </td> </tr> - + </table> + <tr> + <td height='20'></td> + </tr> + + + + <tr><td colspan='4'> + <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> + <tr> + <td colspan='4' class='tab_h'><h4>PXE Konfiguration zuordnen (mit Time Range):</h4></td> + </tr> + <tr valign='top'> + <td class='tab_d'><b>Rechner / Gruppen</b><br> + (Mehrfachauswahl <br>möglich) </td> + <td class='tab_d'> </td> + <td class='tab_d'> + <select name='targethosts[]' size='8' multiple class='small_form_selectbox'> + <option selected value='none'>----- RECHNER -----</option> + <!-- BEGIN DYNAMIC BLOCK: Hosts --> + <option value='{HDN}'>{HN}</option> + <!-- END DYNAMIC BLOCK: Hosts --> + </select> + </td> + <td class='tab_d'> + <select name='targetgroups[]' size='8' multiple class='small_form_selectbox'> + <option selected value='none'>----- GRUPPEN -----</option> + <!-- BEGIN DYNAMIC BLOCK: Groups --> + <option value='{GDN}'>{GN}</option> + <!-- END DYNAMIC BLOCK: Groups --> + </select> + </td> + </tr> + <tr valign='top'> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Gültigkeitsdauer <br>(Time Range(s)): </b><br> - Zum Löschen einer Time Range<br>Häkchen setzen </td> - <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> - <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td width='25%' class='tab_d_ohne'><b>Gültigkeitsdauer <br>(Time Range(s)): </b><br> + Zum Löschen einer Time Range<br>Häkchen setzen </td> + <td width='5%' class='tab_d_ohne'> </td> + <td width='35%' class='tab_d_ohne'> Eines der folgenden:<br> - <b>Datum</b> (dd.mm, z.B. 21.03/01.11) <br> @@ -52,7 +83,7 @@ - <b>Wochentag</b> (MO, DI, ... , SO) <br> - <b>X</b> für <b>täglich</b> - <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td width='35%' class='tab_d_ohne'> - <b>Uhrzeit</b> (Format: hh, z.B. 07-19)<br> - <b>X</b> für rund um die Uhr @@ -61,16 +92,16 @@ <!-- BEGIN DYNAMIC BLOCK: TRanges --> <tr valign='top'> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> - <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td width='25%' class='tab_d_ohne'> </td> + <td width='5%' class='tab_d_ohne'> <input type='checkbox' name='deltr[]' value='{PXEDAY}_{PXEBEG}_{PXEEND}'> </td> - <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td width='35%' class='tab_d_ohne'> <input type='Text' name='pxeday[]' value='{PXEDAY}' size='5' maxlength='5' class='medium_form_field'> <input type='hidden' name='oldpxeday[]' value='{PXEDAY}'> <br> - <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> + <td width='35%' class='tab_d_ohne'> <input type='Text' name='pxebeg[]' value='{PXEBEG}' size='2' maxlength='2' class='medium_form_field'> <input type='hidden' name='oldpxebeg[]' value='{PXEBEG}'> <b><font size='+1'>:00</b> - </font> <input type='Text' name='pxeend[]' value='{PXEEND}' size='2' maxlength='2' class='medium_form_field'> @@ -80,12 +111,12 @@ <!-- END DYNAMIC BLOCK: TRanges --> <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Neue Time Range hinzufügen </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> </td> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d'>Neue Time Range hinzufügen </td> + <td class='tab_d'> </td> + <td class='tab_d'> <input type='Text' name='newpxeday' value='' size='5' maxlength='5' class='medium_form_field'> - <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> + <td class='tab_d'> <input type='Text' name='newpxebeg' value='' size='2' maxlength='2' class='medium_form_field'> <b><font size='+1'>:00</b> - </font> <input type='Text' name='newpxeend' value='' size='2' maxlength='2' class='medium_form_field'> @@ -95,45 +126,12 @@ </tr> </table></td> - </tr> - - + </tr> <tr> - <td height='20'></td> - </tr> - <tr> - <td colspan='4'><h4>PXE Dateiname:</h4> - Achtung: Änderungen hier können zu nicht verwendeten PXE Dateien führen!<br> - Sie sollten hier nur Änderungen vornehmen, wenn der PXE Datei offensichtlich ein falscher Name zugewiesen ist.<br> - Wird z.B. vom betroffenen Rechner die MAC Adresse geändert, so wird dies vom System automatisch an dieser Stelle nachvollzogen. - Diese Feld dient daher primär der Kontrolle.</td> - </tr> - <tr> - <td colspan='4'> - <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> - - <tr valign='top'> - <td width='40%' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'> - <b>PXE Dateiname(n): </b><br> - Bei PXE von Gruppen ist für jeden Mitgliedsrechner<br> - der PXE Dateiname aufgelistet. - </td> - <td style='border-color: black; border-style: solid; border-width: 3 0 1 0;'> - <!-- BEGIN DYNAMIC BLOCK: Filenames --> - <input type='Text' name='filename[]' value='{FILE}' size='40' class='medium_form_field'> - <input type='hidden' name='oldfilename[]' value='{FILE}'> - <!-- END DYNAMIC BLOCK: Filenames --> - <input type='Text' name='newfilename' value='' size='40' class='medium_form_field'> - </td> - </tr> - - </table></td> - </tr> - <tr> <td> <input type='hidden' name='nodedn' value='{NODEDN}'> <input type='hidden' name='pxedn' value='{PXEDN}'> - <input type='hidden' name='oldpxecn' value='{PXECN}'> + <input type='hidden' name='oldpxecn' value='{PXECN}'> <input type='hidden' name='mnr' value='{MNR}'> <input type='hidden' name='sbmnr' value='{SBMNR}'> <input type='hidden' name='mcnr' value='{MCNR}'> @@ -141,66 +139,8 @@ </form></td> </tr> - - - <tr> - <td height='50'></td> - </tr> - - <tr> - <td colspan='4'><h4>PXE Boot Menü <code class='font_object'>{PXECN}</code> kopieren:</h4> - Beachten Sie, dass die Time Ranges des PXE Boot Menüs nicht kopiert werden. Sie müssen diese anschließend - neu setzen. <br> - Geben Sie bitte den eindeutigen Namen des neuen PXE Boot Menüs an.</td> - </tr> - <tr> - <td colspan='4'> - <table cellpadding='7' cellspacing='0' border='0' align='left' width='90%' style='border-width: 0 0 0 0;'> - <form action='pxe_copy.php' method='post'> - - <tr valign='top'> - <td style='border-color: black; border-style: solid; border-width: 3 0 1 0;'><b>Ziel Objekt:</b><br> - (Mehrfachauswahl möglich) </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'> - - <select name='copytargets[]' size='10' multiple class='medium_form_selectbox'> - <option selected value='none'>----------------------------</option> - <option value='{DEFDN}'>DEFAULT</option> - - <option value='none'>---- RECHNER -----</option> - <!-- BEGIN DYNAMIC BLOCK: Hosts --> - <option value='{HDN}'>{HN}</option> - <!-- END DYNAMIC BLOCK: Hosts --> - - <option value='none'>---- GRUPPEN -----</option> - <!-- BEGIN DYNAMIC BLOCK: Groups --> - <option value='{GDN}'>{GN}</option> - <!-- END DYNAMIC BLOCK: Groups --> - </select> - </td> - </tr> - <tr> - <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Bitte ohne Leerzeichen eingeben) </td> - <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> - <font size='+2'><b>PXE_</b></font><input type='Text' name='pxecncp' value='{PXECN}' size='50' class='medium_form_field'> - <input type='hidden' name='oldpxecncp' value='{PXECN}'> - </td> - </tr> - - <input type='hidden' name='pxedn' value='{PXEDN}'> - <input type='hidden' name='oldpxecn' value='{PXECN}'> - <input type='hidden' name='mnr' value='{MNR}'> - <input type='hidden' name='sbmnr' value='{SBMNR}'> - <input type='hidden' name='mcnr' value='{MCNR}'> - <input type='hidden' name='deltr' value='{DELTR}'> - - </table></td> - </tr><tr><td> - <input type='Submit' name='apply' value='kopieren' class='small_loginform_button'> - </form></td></tr> - <tr> - <td height='50'></td> + <td height='60'></td> </tr> <tr> @@ -213,8 +153,8 @@ <tr> - <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> - Die PXE Config wird komplett gelöscht. + <td class='tab_d_ohne'> + Die PXE Config wird inklusive aller Client-Zuordnungen auf sie komplett gelöscht. </tr> <input type='hidden' name='dn' value='{PXEDN}'> diff --git a/ldap-site-mngmt/webinterface/computers/pxe.php b/ldap-site-mngmt/webinterface/computers/pxe.php index d4f86026..f92146a2 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe.php +++ b/ldap-site-mngmt/webinterface/computers/pxe.php @@ -13,9 +13,7 @@ $mcnr = -1; ################################################################################### -$mnr = $_GET['mnr']; -$sbmnr = $_GET['sbmnr']; -$mcnr = $_GET['mcnr']; +$mnr = $_GET['mnr']; # Menuleisten erstellen createMainMenu($rollen, $mainnr); @@ -24,6 +22,12 @@ createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); ################################################################################### $pxeDN = $_GET['dn']; + +$template->assign(array("HDN" => "", + "HN" => "", + "GDN" => "", + "GN" => "")); + # DN, CN des übergeordneten Nodes (Host oder Group) $pxednarray = ldap_explode_dn($pxeDN, 0); $nodeDN = implode(',',array_slice($pxednarray,2)); @@ -57,120 +61,48 @@ if (count($pxe['timerange']) > 1){ $template->parse("TRANGES_LIST", ".TRanges"); } -# Filenames -$template->define_dynamic("Filenames", "Webseite"); -if (count($pxe['filename']) > 1){ - foreach($pxe['filename'] as $fi){ - $template->assign(array("FILE" => $fi)); - $template->parse("FILENAMES_LIST", ".Filenames"); - } -}else{ - $exptime = explode('_',$pxe['filename']); - $template->assign(array("FILE" => $pxe['filename'])); - $template->parse("FILENAMES_LIST", ".Filenames"); -} $expcn = explode('_',$pxe['cn']); $name = array_slice($expcn,1); $pxecn = implode('_',$name); -# Bootmenü Einträge -$menuentries = get_menuentries($pxeDN,array("dn","menuposition","label","menulabel","menudefault","menupasswd","menuhide")); -# print_r($menuentries); echo "<br>"; -$maxpos = count($menuentries)+1; -# Globale Parameter $template->assign(array("PXEDN" => $pxeDN, "PXECN" => $pxecn, "TIMERANGE" => $pxe['timerange'], - "TFTP" => $rbsdata['tftpserverip'], - "TFTPFILE" => $rbsdata['tftpclientconfpath'], - #"LDAPURI" => $pxe['ldapuri'], - "FILEURI" => $pxe['fileuri'], - "NODEDN" => $nodeDN, - "NODE" => $nodednarray[0], - "DEFDN" => "cn=rbs,".$auDN, - "OPTLINK" => "<a href='pxe_globals.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", - "BMLINK" => "<a href='pxe_bootmenue.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", - "MNR" => $mnr, - "SBMNR" => $sbmnr, - "MCNR" => $mcnr)); - - -# Für Submenü Einträge -$template->assign(array("SUBRBSDN" => "", - "SUBRBSCN" => "", - "SUBRBSAU" => "")); -if (count($subrbs) != 0){ -$template->define_dynamic("Subrbs", "Webseite"); - foreach ($subrbs as $item){ - $rbsdnexp = ldap_explode_dn($item,1); - $subrbscn = $rbsdnexp[0]; - $subrbsau = $rbsdnexp[2]; - #$subrbsexp = explode(',',$item['dn']); - #$subrbsau = explode('=',$subrbsexp[2]); - $template->assign(array("SUBRBSDN" => $item, - "SUBRBSCN" => $subrbscn, - "SUBRBSAU" => "[ ".$subrbsau." ]")); - $template->parse("SUBRBS_LIST", ".Subrbs"); - } -} + "NODEDN" => $nodeDN, + "NODE" => $nodednarray[0], + "DEFDN" => "cn=rbs,".$auDN, + "OPTLINK" => "<a href='pxe_globals.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", + "BMLINK" => "<a href='pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "MCNR" => $mcnr)); + -################################################ -# Bootmenü Einträge - -$template->define_dynamic("Bootmenu", "Webseite"); -$template->assign(array("MENDN" => "", - "MENULABEL" => "", - "ANZEIGE" => "Noch kein Bootmenü Eintrag angelegt", - "MEDEF" => "", - "MEPWD" => "", - "MEHIDE" => "", - "BGCDEF" => "", - "POSITION" => "")); -foreach ($menuentries as $me){ - $anzeige = ""; - if ($me['label'] != "" && $me['menulabel'] == ""){$anzeige .= $me['label'];} - if ($me['menulabel'] != ""){$anzeige .= $me['menulabel'];} - if ($me['menudefault'] == 1){$medef = "<b>D</b>"; $bgcdef = "background-color:#EEDD82;";} - if ($me['menupasswd'] != ""){$mepwd = "<b>P</b>";} - if ($me['menuhide'] == 1){$mehide = "<b>H</b>"; $bgcdef = "background-color:#A0A0A0;";} - $template->assign(array("MENDN" => $me['dn'], - "ANZEIGE" => "<a href='menuentry.php?dn=".$me['dn']."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr."' class='headerlink'>".$anzeige."</a>", - "ANZEIGENAME" => $anzeige, - "POSITION" => $me['menuposition'], - "MEDEF" => $medef, - "MEPWD" => $mepwd, - "MEHIDE" => $mehide, - "BGCDEF" => $bgcdef, - "AUDN" => $auDN)); - $template->parse("BOOTMENU_LIST", ".Bootmenu"); - $medef = ""; - $bgcdef = ""; -} ################################################ -# PXE kopieren +# PXE zuordnen $hostorgroup = $exp[0]; $hgexp = explode('=',$exp[0]); -$hosts_array = get_hosts($auDN,array("dn","hostname")); +$hosts_array = get_hosts($auDN,array("dn","hostname"),""); $groups_array = get_groups($auDN,array("dn","cn")); $template->define_dynamic("Hosts", "Webseite"); foreach ($hosts_array as $item){ $template->assign(array("HDN" => $item['dn'], "HN" => $item['hostname'])); - $template->parse("HOSTS_LIST", ".Hosts"); + $template->parse("HOSTS_LIST", ".Hosts"); } $template->define_dynamic("Groups", "Webseite"); foreach ($groups_array as $item){ $template->assign(array("GDN" => $item['dn'], "GN" => $item['cn'])); - $template->parse("GROUPS_LIST", ".Groups"); + $template->parse("GROUPS_LIST", ".Groups"); } $dnexp = ldap_explode_dn($pxeDN, 1); diff --git a/ldap-site-mngmt/webinterface/computers/pxe_add.php b/ldap-site-mngmt/webinterface/computers/pxe_add.php index ef245f4d..db1dabe2 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_add.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_add.php @@ -11,8 +11,6 @@ $pxeend = $_POST['pxeend']; $pxeend = htmlentities($pxeend); $conffile = $_POST['conffile']; $conffile = htmlentities($conffile); $mnr = $_POST['mnr']; -$sbmnr = $_POST['sbmnr']; -$mcnr = $_POST['mcnr']; $targets = $_POST['targets']; #print_r($targets); echo "<br>"; @@ -24,7 +22,7 @@ for ($i=0; $i<count($n); $i++){ } #echo "Zielobjekte: ";print_r($targets); echo "<br>"; -$pxeattribs = $_POST['pxeattribs']; +$pxeattribs = $_POST['attribs']; if (count($pxeattribs) != 0){ foreach (array_keys($pxeattribs) as $key){ $pxeatts[$key] = htmlentities($pxeattribs[$key]); @@ -37,7 +35,7 @@ $get_pxecn = str_replace ( " ", "_", $pxecn ); $get_pxeday = str_replace ( " ", "_", $pxeday ); $get_pxebeg = str_replace ( " ", "_", $pxebeg ); $get_pxeend = str_replace ( " ", "_", $pxeend ); -$url = "new_pxe.php?pxecn=".$get_pxecn."&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr; +$url = "new_pxe.php?pxecn=".$get_pxecn."&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr; echo " <html> @@ -135,7 +133,6 @@ if ( $pxecn != "" && $pxecn != "Hier_PXE_NAME_eintragen" && $rbsDN != "none" ){ $pxebeg = preg_replace ( '/0([0-9])/', '$1', $pxebeg); $pxeend = preg_replace ( '/0([0-9])/', '$1', $pxeend); - print_r($nodeDN); # TimeRange auf Ãœberschneidung mit vorhandenen checken if(check_timerange_pxe($pxeday,$pxebeg,$pxeend,$targetDN,"")){ $pxetimerange = $pxeday."_".$pxebeg."_".$pxeend; diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt index ac6261b6..5c3986b3 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.dwt @@ -1,7 +1,7 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='4' height='20'><h4><a href='{NODETYP}.php?dn={NODEDN}&mnr=1&sbmnr={SBMNR}&mcnr=-1' class='headerlink'><< Zurück zu Rechner {NODE}</a></h4></td> + <td colspan='4' height='20'><h4><a href='pxeconfigs.php' class='headerlink'><< Zurück zur Übersicht PXE Configs</a></h4></td> </tr> <tr> <td height='20'> </td> diff --git a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php index e916048b..29d6e338 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_bootmenue.php @@ -13,9 +13,7 @@ $mcnr = -1; ################################################################################### -$mnr = $_GET['mnr']; -$sbmnr = $_GET['sbmnr']; -$mcnr = $_GET['mcnr']; +$mnr = $_GET['mnr']; # Menuleisten erstellen createMainMenu($rollen, $mainnr); @@ -87,12 +85,11 @@ $template->assign(array("PXEDN" => $pxeDN, "NODEDN" => $nodeDN, "NODE" => $nodednarray[0], "DEFDN" => "cn=rbs,".$auDN, - "PXELINK" => "<a href='pxe.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", - "OPTLINK" => "<a href='pxe_globals.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", + "PXELINK" => "<a href='pxe.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", + "OPTLINK" => "<a href='pxe_globals.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", "MNR" => $mnr, - "SBMNR" => $sbmnr, - "MCNR" => $mcnr)); - + "SBMNR" => $sbmnr)); + # Für Submenü Einträge $template->assign(array("SUBRBSDN" => "", @@ -147,48 +144,8 @@ foreach ($menuentries as $me){ } -################################################ -# PXE kopieren - -$hostorgroup = $exp[0]; -$hgexp = explode('=',$exp[0]); - - -$hosts_array = get_hosts($auDN,array("dn","hostname")); -$groups_array = get_groups($auDN,array("dn","cn")); - -$template->define_dynamic("Hosts", "Webseite"); -foreach ($hosts_array as $item){ - $template->assign(array("HDN" => $item['dn'], - "HN" => $item['hostname'])); - $template->parse("HOSTS_LIST", ".Hosts"); -} -$template->define_dynamic("Groups", "Webseite"); -foreach ($groups_array as $item){ - $template->assign(array("GDN" => $item['dn'], - "GN" => $item['cn'])); - $template->parse("GROUPS_LIST", ".Groups"); -} - -$dnexp = ldap_explode_dn($pxeDN, 1); -if ($dnexp[2] == "computers"){ - $nodetyp = "rbshost"; -} -if ($dnexp[2] == "groups"){ - $nodetyp = "group"; -} -# falls TR vorhanden dann soll sie gelöscht werden (flag deltr setzen) -if (count($pxe['timerange']) != 0){ - $template->assign(array("DELTR" => "1", - "NODETYP" => $nodetyp)); -} -else{ - $template->assign(array("DELTR" => "0", - "NODETYP" => $nodetyp)); -} - ################################################################################### include("computers_footer.inc.php"); -?> +?>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/pxe_globals.dwt b/ldap-site-mngmt/webinterface/computers/pxe_globals.dwt index 78b89481..f0497183 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_globals.dwt +++ b/ldap-site-mngmt/webinterface/computers/pxe_globals.dwt @@ -1,7 +1,7 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='4' height='20'><h4><a href='{NODETYP}.php?dn={NODEDN}&mnr=1&sbmnr={SBMNR}&mcnr=-1' class='headerlink'><< Zurück zu Rechner {NODE}</a></h4></td> + <td colspan='4' height='20'><h4><a href='pxeconfigs.php' class='headerlink'><< Zurück zur Übersicht PXE Configs</a></h4></td> </tr> <tr> <td height='20'> </td> diff --git a/ldap-site-mngmt/webinterface/computers/pxe_globals.php b/ldap-site-mngmt/webinterface/computers/pxe_globals.php index 0bfdaee6..211a47c8 100644 --- a/ldap-site-mngmt/webinterface/computers/pxe_globals.php +++ b/ldap-site-mngmt/webinterface/computers/pxe_globals.php @@ -13,9 +13,7 @@ $mcnr = -1; ################################################################################### -$mnr = $_GET['mnr']; -$sbmnr = $_GET['sbmnr']; -$mcnr = $_GET['mcnr']; +$mnr = $_GET['mnr']; # Menuleisten erstellen createMainMenu($rollen, $mainnr); @@ -57,27 +55,6 @@ if (count($pxe['timerange']) > 1){ $template->parse("TRANGES_LIST", ".TRanges"); } -# Filenames -$template->define_dynamic("Filenames", "Webseite"); -if (count($pxe['filename']) > 1){ - foreach($pxe['filename'] as $fi){ - $template->assign(array("FILE" => $fi)); - $template->parse("FILENAMES_LIST", ".Filenames"); - } -}else{ - $exptime = explode('_',$pxe['filename']); - $template->assign(array("FILE" => $pxe['filename'])); - $template->parse("FILENAMES_LIST", ".Filenames"); -} - -$expcn = explode('_',$pxe['cn']); -$name = array_slice($expcn,1); -$pxecn = implode('_',$name); - -# Bootmenü Einträge -$menuentries = get_menuentries($pxeDN,array("dn","menuposition","label","menulabel","menudefault","menupasswd","menuhide")); -# print_r($menuentries); echo "<br>"; -$maxpos = count($menuentries)+1; # Globale Parameter $template->assign(array("PXEDN" => $pxeDN, @@ -106,105 +83,11 @@ $template->assign(array("PXEDN" => $pxeDN, "NODEDN" => $nodeDN, "NODE" => $nodednarray[0], "DEFDN" => "cn=rbs,".$auDN, - "PXELINK" => "<a href='pxe.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", - "BMLINK" => "<a href='pxe_bootmenue.php?dn=".$pxeDN."&sbmnr=".$sbmnr."' class='headerlink'>", + "PXELINK" => "<a href='pxe.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", + "BMLINK" => "<a href='pxe_bootmenue.php?dn=".$pxeDN."&mnr=".$mnr."' class='headerlink'>", "MNR" => $mnr, - "SBMNR" => $sbmnr, - "MCNR" => $mcnr)); - - -# Für Submenü Einträge -$template->assign(array("SUBRBSDN" => "", - "SUBRBSCN" => "", - "SUBRBSAU" => "")); -if (count($subrbs) != 0){ -$template->define_dynamic("Subrbs", "Webseite"); - foreach ($subrbs as $item){ - $rbsdnexp = ldap_explode_dn($item,1); - $subrbscn = $rbsdnexp[0]; - $subrbsau = $rbsdnexp[2]; - #$subrbsexp = explode(',',$item['dn']); - #$subrbsau = explode('=',$subrbsexp[2]); - $template->assign(array("SUBRBSDN" => $item, - "SUBRBSCN" => $subrbscn, - "SUBRBSAU" => "[ ".$subrbsau." ]")); - $template->parse("SUBRBS_LIST", ".Subrbs"); - } -} - -################################################ -# Bootmenü Einträge - -$template->define_dynamic("Bootmenu", "Webseite"); -$template->assign(array("MENDN" => "", - "MENULABEL" => "", - "ANZEIGE" => "Noch kein Bootmenü Eintrag angelegt", - "MEDEF" => "", - "MEPWD" => "", - "MEHIDE" => "", - "BGCDEF" => "", - "POSITION" => "")); -foreach ($menuentries as $me){ - $anzeige = ""; - if ($me['label'] != "" && $me['menulabel'] == ""){$anzeige .= $me['label'];} - if ($me['menulabel'] != ""){$anzeige .= $me['menulabel'];} - if ($me['menudefault'] == 1){$medef = "<b>D</b>"; $bgcdef = "background-color:#EEDD82;";} - if ($me['menupasswd'] != ""){$mepwd = "<b>P</b>";} - if ($me['menuhide'] == 1){$mehide = "<b>H</b>"; $bgcdef = "background-color:#A0A0A0;";} - $template->assign(array("MENDN" => $me['dn'], - "ANZEIGE" => "<a href='menuentry.php?dn=".$me['dn']."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr."' class='headerlink'>".$anzeige."</a>", - "ANZEIGENAME" => $anzeige, - "POSITION" => $me['menuposition'], - "MEDEF" => $medef, - "MEPWD" => $mepwd, - "MEHIDE" => $mehide, - "BGCDEF" => $bgcdef, - "AUDN" => $auDN)); - $template->parse("BOOTMENU_LIST", ".Bootmenu"); - $medef = ""; - $bgcdef = ""; -} - - -################################################ -# PXE kopieren + "SBMNR" => $sbmnr)); -$hostorgroup = $exp[0]; -$hgexp = explode('=',$exp[0]); - - -$hosts_array = get_hosts($auDN,array("dn","hostname")); -$groups_array = get_groups($auDN,array("dn","cn")); - -$template->define_dynamic("Hosts", "Webseite"); -foreach ($hosts_array as $item){ - $template->assign(array("HDN" => $item['dn'], - "HN" => $item['hostname'])); - $template->parse("HOSTS_LIST", ".Hosts"); -} -$template->define_dynamic("Groups", "Webseite"); -foreach ($groups_array as $item){ - $template->assign(array("GDN" => $item['dn'], - "GN" => $item['cn'])); - $template->parse("GROUPS_LIST", ".Groups"); -} - -$dnexp = ldap_explode_dn($pxeDN, 1); -if ($dnexp[2] == "computers"){ - $nodetyp = "rbshost"; -} -if ($dnexp[2] == "groups"){ - $nodetyp = "group"; -} -# falls TR vorhanden dann soll sie gelöscht werden (flag deltr setzen) -if (count($pxe['timerange']) != 0){ - $template->assign(array("DELTR" => "1", - "NODETYP" => $nodetyp)); -} -else{ - $template->assign(array("DELTR" => "0", - "NODETYP" => $nodetyp)); -} ################################################################################### diff --git a/ldap-site-mngmt/webinterface/computers/pxeconfigs.dwt b/ldap-site-mngmt/webinterface/computers/pxeconfigs.dwt new file mode 100644 index 00000000..428eb13b --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxeconfigs.dwt @@ -0,0 +1,318 @@ +<table border='0' cellpadding='5' cellspacing='0' width='100%'> + <tr> + <td colspan='4'><h3>PXE Konfigurationen (Boot Menüs) <code class='font_object'> {AU} </code> </h3></td> + </tr> + + <tr><td colspan='4'> + <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> + <tr> + <td width='20%' class='tab_h'><b>PXE Config</b></td> + <td width='20%' class='tab_h'><b>gültig für Client(s)</b></td> + <td width='30%' class='tab_h'><b>Time Range (Gültigkeitsdauer)</b></td> + <td width='30%' class='tab_h'><b> </b></td> + </tr> + + + + <!-- BEGIN DYNAMIC BLOCK: Pxeconf --> + <tr valign='top'> + <td class='tab_d'>{PXECN} </td> + <td class='tab_d'>{PXECLIENTS} </td> + <td class='tab_d'>{TRANGES} </td> + <td class='tab_d'> </td> + </tr> + <!-- END DYNAMIC BLOCK: Pxeconf --> + + </table></td> + </tr> + + + <tr> + <td height='50'></td> + </tr> + + <tr> + <td colspan='4'><h4>Wochen Übersicht PXE Configs:</h4></td> + </tr> + <tr valign='top'> + <td width="70%"> + <table cellpadding='0' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> + <tr align='center'> + <td width='9%' style='border-color: black; border-style: solid; border-width: 2 0 2 2;'><b>Uhrzeit</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Montag</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Dienstag</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Mittwoch</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Donnerstag</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Freitag</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 0 2 1;'><b>Samstag</b></td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 2 2 2 1;'><b>Sonntag</b></td> + </tr> + <tr heigth='2' align='center'> + <td width='9%' style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>0</td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F0}'> </td> + <td width='13%' style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G0}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F1}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G1}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>2</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F2}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G2}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F3}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G3}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>4</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F4}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G4}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F5}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G5}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>6</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F6}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G6}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F7}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G7}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>8</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F8}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G8}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F9}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G9}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>10</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F10}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G10}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F11}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G11}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>12</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F12}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G12}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F13}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G13}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>14</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F14}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G14}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F15}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G15}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>16</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F16}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G16}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F17}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G17}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>18</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F18}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G18}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F19}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G19}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>20</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F20}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G20}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F21}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G21}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 2;'>22</td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{A22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F22}'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G22}'> </td> + </tr> + <tr heigth='2' align='center'> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 2;'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{A23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{B23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{C23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{D23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{E23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{F23}'> </td> + <td style='border-color: black; border-style: solid; border-width: 0 2 2 1;{G23}'> </td> + </tr> + + </table></td> + + <td width="30%"> + <table cellpadding='3' cellspacing='3' border='1' align='left' width='50%' style='border-width: 0 0 0 0;'> + <tr> + <td width='65%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>PXE Config</b></td> + <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Farbe</b></td> + </tr> + + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>No Config </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 1 1 1;'> </td> + </tr> + + <!-- BEGIN DYNAMIC BLOCK: Legende --> + <tr> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>{PXEPLANDESC} </td> + <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> </td> + <td style='border-color: black; border-style: solid; border-width: 1 1 1 1;background-color:{COLOR};'> </td> + </tr> + <!-- END DYNAMIC BLOCK: Legende --> + + </table></td> + </tr> + +</table> diff --git a/ldap-site-mngmt/webinterface/computers/pxeconfigs.php b/ldap-site-mngmt/webinterface/computers/pxeconfigs.php new file mode 100644 index 00000000..95d1abfd --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxeconfigs.php @@ -0,0 +1,92 @@ +<?php + +include('../standard_header.inc.php'); + +# Dateiname und evtl. Pfad des Templates für die Webseite +$webseite = "pxeconfigs.dwt"; + +include('computers_header.inc.php'); + +################################################################################### + +$mnr = 2; +$sbmnr = -1; +$mcnr = -1; + +# Menuleisten erstellen +createMainMenu($rollen, $mainnr); +createComputersMenu($rollen, $mnr, $auDN, $sbmnr, $mcnr); + +################################################################################### + +$rbsDN = $_GET['rbsdn']; + +$template->assign(array("PXEDN" => "", + "PXECN" => "Noch keine PXE Boot Konfiguration angelegt", + "TRANGES" => "", + "PXECLIENTS" => "", + "RBS" => "", + "CN" => "")); + +$pxe_array = get_pxeconfigs2("",array("dn","cn","timerange","rbservicedn","pxeclientdn")); + +$template->define_dynamic("Pxeconf", "Webseite"); + +for ($i=0; $i<count($pxe_array); $i++){ + + # PXE Config Name + $pxename = "<a href='pxe.php?dn=".$pxe_array[$i]['dn']."&mnr=".$mnr."&sbmnr=".$i."' class='headerlink'>".$pxe_array[$i]['cn']."</a><br>"; + + # Timerange Komponenten + $trange = ""; + if (count($pxe_array[$i]['timerange']) > 1 ){ + foreach ($pxe_array[$i]['timerange'] as $tr){ + $exptime = array_merge(explode('_',$tr),$pxe_array[$i]['cn']); + $wopltranges[$i][] = $exptime; # Für grafische Wo-Ansicht + if ($exptime[0] == "X"){$exptime[0]="täglich";} + # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";} + $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59 / "; + } + }elseif (count($pxe_array[$i]['timerange']) == 1 ){ + $exptime = array_merge(explode('_',$pxe_array[$i]['timerange']), array($pxe_array[$i]['cn'])); + $wopltranges[$i] = $exptime; # Für grafische Wo-Ansicht + if ($exptime[0] == "X"){$exptime[0]="täglich";} + # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";} + $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59"; + } + + # PXE Config Clients + $pxeclients = ""; + if (count($pxe_array[$i]['pxeclientdn']) > 1 ){ + #echo "ClientsARRAY: "; print_r($pxe_array[$i]['pxeclientdn']); echo "<br>"; + foreach ($pxe_array[$i]['pxeclientdn'] as $item) { + $pxecldn = ldap_explode_dn($item, 1); + $pxeclients .= $pxecldn[0]."<br>"; + } + + }elseif (count($pxe_array[$i]['pxeclientdn']) == 1 ){ + $pxecldn = ldap_explode_dn($pxe_array[$i]['pxeclientdn'], 1); + $pxeclients = $pxecldn[0]; + } + + $template->assign(array("PXEDN" => $pxe_array[$i]['dn'], + "PXECN" => $pxename, + "TRANGES" => $trange, + "PXECLIENTS" => $pxeclients, + "RBS" => $rbsDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "AUDN" => $auDN)); + $template->parse("PXECONF_LIST", ".Pxeconf"); + +} + + +include("pxe_wochenplan.php"); + + +################################################################################### + +include("computers_footer.inc.php"); + +?> diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.dwt b/ldap-site-mngmt/webinterface/computers/rbshost.dwt index 59baf810..abff2cd8 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.dwt +++ b/ldap-site-mngmt/webinterface/computers/rbshost.dwt @@ -3,7 +3,7 @@ <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 1;'><h4>{HOSTLINK} Allgemein </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{DHCPLINK} DHCP </a></h4></td> <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4><code class='font_object'> RBS/PXE </code></h4></td> - <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Hardware </a></h4></td> + <td align='center' width='15%' style='border-color: black; border-style: solid; border-width: 0 1 0 0;'><h4>{HWLINK} Geo/Hardware </a></h4></td> <td> </td> </tr> <tr> diff --git a/ldap-site-mngmt/webinterface/computers/rbshost.php b/ldap-site-mngmt/webinterface/computers/rbshost.php index 101c5171..b28e0726 100644 --- a/ldap-site-mngmt/webinterface/computers/rbshost.php +++ b/ldap-site-mngmt/webinterface/computers/rbshost.php @@ -7,7 +7,7 @@ $webseite = "rbshost.dwt"; include('computers_header.inc.php'); -$mnr = 1; +$mnr = 0; $sbmnr = -1; $mcnr = -1; @@ -68,7 +68,7 @@ if (count($altrbs) != 0){ } } $rbs_selectbox .= "<option value=''>Kein RBS</option> - </select></td>"; + </select></td>"; # RBS Daten if ($rbsDN == ""){ @@ -128,7 +128,7 @@ $template->assign(array("HOSTDN" => $hostDN, # Rechnerspezifische PXEs -$hostpxeconfigs = get_pxeconfigs($hostDN, array("dn","cn","description","timerange")); +$hostpxeconfigs = get_pxeconfigs2($hostDN, array("dn","cn","description","timerange")); $template->assign(array("PXEDN" => "", "PXECN" => "Keine PXE Config angelegt", @@ -170,7 +170,8 @@ if (count($hostpxeconfigs) != 0){ $template->assign(array("DEFPXEDN" => "", "DEFPXECN" => "Keine PXE Config angelegt", "DEFPXEDESC" => "", - "DEFPXETR" => "",)); + "DEFPXETR" => "", + "PXEPLANDESC" => "")); $template->define_dynamic("Defpxes", "Webseite"); if ($rbsDN != ""){ @@ -206,7 +207,7 @@ if ($rbsDN != ""){ } } } -} +#} ########################################################## # PXE Wochenübersicht @@ -240,6 +241,8 @@ for ($i=0; $i<count($hostpxeconfigs); $i++){ include("pxe_wochenplan.php"); +} + ################################################################################### include("computers_footer.inc.php"); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcp.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcp.dwt index 0a79961c..9946aae9 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcp.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcp.dwt @@ -5,18 +5,18 @@ <link rel='stylesheet' href='../styles.css' type='text/css'></head> <body> -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> <tr> - <td width='35%'> + <td width='30%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> - <td width='40%'> + <td width='45%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top' align='left'> <td> @@ -36,14 +36,12 @@ </table> </td> </tr> -</table> -<table cellpadding='5' cellspacing='0' border='0' width='95%' height='7%'> -<tr> - <td>{MAINMENU}</td> -</tr> + <tr> + <td colspan='3'>{MAINMENU}</td> + </tr> </table> -<hr align='center' width='98%' noshade> +<br> diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php index a51ee6d5..01ec5b92 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcp_menu.php @@ -1,29 +1,27 @@ <?php -function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { - - global $template, $START_PATH, $rootAU; - - $mipbs = get_maxipblocks_au($auDN); - #echo "MIPB: "; print_r ($mipbs); echo "<br>"; - if ($mipbs[0] != ""){ - $hauptmenu = array(array("link" => "dhcp.php", - "text" => "Übersicht", - "zugriff" => "alle")); - }else{ - $hauptmenu = array(array("link" => "no_dhcp.php", +function createDhcpMenu($rollen, $mnr, $auDN, $sbmnr) { + + global $template, $START_PATH, $rootAU; + + $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", "text" => "Übersicht", "zugriff" => "alle")); - } - + } + $pools = get_dhcppools($auDN, array("dn")); if (count($pools) == 0){ $poollink = "dhcpnopool.php"; }else{ $poollink = "dhcppool.php"; } - - $i=1; + + $i=0; if ( $auDN == $rootAU ) { $dhcpservice_array = get_dhcpservices($auDN,array("dn","cn")); if (count($dhcpservice_array) == 0){ @@ -33,8 +31,8 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { $dhcpsvlink = "dhcpservice.php?mnr=1"; } $hauptmenu []= array("link" => $dhcpsvlink, - "text" => "DHCP Service", - "zugriff" => array("MainAdmin","DhcpAdmin")); + "text" => "DHCP Service", + "zugriff" => array("MainAdmin","DhcpAdmin")); $i++; } if ($mipbs[0] != ""){ @@ -42,9 +40,9 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { $hauptmenu [] = array("link" => "dhcpsubnets.php?mnr=".$i, "text" => "DHCP Subnets", "zugriff" => array("MainAdmin","DhcpAdmin")); - - $subnets = array(); - # falls komplette Netze verfügbar, link zum Neuanlegen + + $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++){ @@ -60,33 +58,28 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { $hauptmenu [] = array("link" => $poollink."?mnr=".$i, "text" => "Dynamische DHCP Pools", "zugriff" => array("MainAdmin","DhcpAdmin")); - - $submenu = array(array(), + + $submenu = array(#array(), $subnets, - array()); - + array()); }else{ $hauptmenu [] = array("link" => $poollink."?mnr=".$i, "text" => "Dynamische DHCP Pools", "zugriff" => array("MainAdmin","DhcpAdmin")); } } - - #print_r ($hauptmenu);cho "<br>"; - #print_r ($submenu); - #$rollen = array_keys($roles); # 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; + + 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){ @@ -137,9 +130,9 @@ function createDhcpMenu($rollen , $mnr, $auDN, $sbmnr) { </tr> <tr> <td width='8%'> </td> - <td width='8%' align='right'>".$zwisch."</td>
+ <td width='8%' align='right'>".$zwisch."</td> <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}'> - <a href='".$item2['link']."' style='text-decoration:none'><b class='standard_schrift'>".$item2['text']."</b></a></td> + <a href='".$item2['link']."' style='text-decoration:none'><code class='submenue_schrift'>".$item2['text']."</code></a></td> <td width='10%'> </td> </tr> "; diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcppool.dwt index f8dbe02d..a4a1f79b 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcppool.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool.dwt @@ -1,9 +1,16 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='2'><h3>Dynamische DHCP Pools </h3></td> + <td width='80%'> + <h3>Dynamische DHCP Pools </h3> + Administration Ihrer eingetragenen <b>dynamischen DHCP Pools</b>:<br> + Bearbeiten von bzw. Anlegen neuer IP Ranges zur dynamischen Vergabe. Zulassen von unbekannten bzw. einschränken auf bekannte Clients (d.h. im DHCP angelegte Clients).<br> + Sie können IP Ranges nur entsprechend der Ihnen noch frei verfübaren IP Adressen definieren.<br><br> + Über die <b>Eingabemaske</b> unten können Sie weitere Pools anlegen + </td> + <td> </td> </tr> - <tr><td> + <tr><td colspan='2'> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <form action='dhcppools_change.php' method='post'> @@ -17,11 +24,11 @@ <!-- BEGIN DYNAMIC BLOCK: Dhcppools --> <tr height='50' valign='top'> - <td class='tab_d'><b>{SUBNET}/24</b><br><br> + <td class='tab_d_ohne'><b>{SUBNET}/24</b><br><br> <input type='checkbox' name='delpool[]' value='{POOLDN}' size='10' class='medium_form_field'> - Pool löschen (Häkchen setzen)</td> + Pool löschen</td> - <td class='tab_d'> + <td class='tab_d_ohne'> <!-- BEGIN DYNAMIC BLOCK: Dhcpranges --> @@ -39,18 +46,23 @@ <input type='Text' name='addrange2[]' value='' size='15' maxlength='15' class='medium_form_field'> </td> - <td class='tab_d'> - <select name='unknownclients[]' size='3' class='small_form_selectbox'> + <td class='tab_d_ohne'> + <select name='unknownclients[]' size='3' class='100_form_selectbox'> {UCSELECT} </select> <input type='hidden' name='olduc[]' value='{UCNOW}'> </td> </tr> + <tr height='50' valign='top'> + <td class='tab_d'><b>Remote Boot Service:</b><br>{RBS}</td> + <td class='tab_d' colspan='2'>{RBSSELECT}</td> + </tr> <input type='hidden' name='pooldn[]' value='{POOLDN}'> + <input type='hidden' name='oldrbs[]' value='{OLDRBS}'> <input type='hidden' name='subnet[]' value='{SUBNET}'> <input type='hidden' name='subnetau[]' value='{SUBNETAU}'> - + <!-- END DYNAMIC BLOCK: Dhcppools --> <input type='hidden' name='mnr' value='{MNR}'> @@ -58,26 +70,27 @@ </table></td> </tr> <tr> - <td><input type='Submit' name='apply' value='anwenden' class='small_loginform_button'> + <td colspan='2'><input type='Submit' name='apply' value='anwenden' class='small_loginform_button'> </form></td> </tr> <tr> - <td height='50'></td> + <td height='50' colspan='2'></td> </tr> <tr> <td colspan='2'><h4>Dynamischen DHCP Pool hinzufügen </h4></td> </tr> <tr> - <td> + <td colspan='2'> <table cellpadding='7' cellspacing='0' border='0' align='left' width='90%' style='border-width: 0 0 0 0;'> <form action='dhcppool_add.php' method='post'> <tr valign='bottom'> <td width='50%' class='tab_h'><b>IP Range (innerhalb eines Subnetzes)</b><br> weitere Ranges können später hinzugefügt werden</td> - <td width='50%' class='tab_h'><b>Unknown Clients</b></td> + <td width='20%' class='tab_h'><b>Unknown Clients</b></td> + <td width='30%' class='tab_h'><b>Remote Boot Service</b></td> </tr> <tr height='50' valign='top'> @@ -87,12 +100,14 @@ <input type='Text' name='addrange2' value='' size='15' maxlength='15' class='medium_form_field'> </td> <td class='tab_d'> - <select name='unknownclients' size='3' class='small_form_selectbox'> + <select name='unknownclients' size='3' class='100_form_selectbox'> <option selected value='deny'> DENY </option> <option value='allow'> ALLOW </option> <option value='ignore'> IGNORE </option> </select> </td> + <td class='tab_d'>{RBSADD} + </td> </tr> <input type='hidden' name='mnr' value='{MNR}'> diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool.php b/ldap-site-mngmt/webinterface/dhcp/dhcppool.php index d35edd18..aa58201f 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcppool.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool.php @@ -24,9 +24,9 @@ createDhcpMenu($rollen, $mnr, $auDN, $sbmnr); # DHCP Pools Daten holen $attributes = array("dn","cn","dhcphlpcont","dhcprange","description","dhcpstatements","dhcpoptallow", "dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptignore","dhcpoptmax-lease-time", - "dhcpoptgeneric"); + "dhcpoptgeneric","hlprbservice","dhcpoptfilename","dhcpoptnext-server"); $pools = get_dhcppools($auDN, $attributes); -#print_r($pools); + if (count($pools) == 0){ redirect(0, "dhcpnopool.php?mnr=".$mnr, "", $addSessionId = TRUE); die; @@ -43,6 +43,8 @@ $template->assign(array("POOLDN" => "", "ALLOW" => "", "DENY" => "", "IGNORE" => "", + "RBS" => "", + "RBSSELECT" => "", "DEFAULTLEASE" => "", "MAXLEASE" => "", "MNR" => $mnr)); @@ -59,7 +61,8 @@ foreach ($pools as $pool){ $subnetdnexp = ldap_explode_dn( $pool['dhcphlpcont'], 0); $subnetauexp = array_slice($subnetdnexp, 3); $subnetau = implode(',',$subnetauexp); - + $rbsDN = $pool['hlprbservice']; + $template->clear_parse("DHCPRANGES_LIST"); @@ -105,8 +108,34 @@ foreach ($pools as $pool){ $ucselectbox = "<option selected value='deny'> DENY </option> <option value='allow'> ALLOW </option> <option value='ignore'> IGNORE </option>"; - } - + } + + # RBS Setup + $rbs_selectbox = ""; + $rbs_addselectbox = ""; + $altrbs = alternative_rbservices($rbsDN); + + $rbs_selectbox .= "<select name='rbs[]' size='4' class='tftp_form_selectbox'> + <option selected value='none'>----------</option>"; + $rbs_addselectbox = "<select name='rbs' size='3' class='tftp_form_selectbox'> + <option selected value='none'>----------</option>"; + if (count($altrbs) != 0){ + foreach ($altrbs as $item){ + $rbs_selectbox .= "<option value='".$item['dn']."'>".$item['cn']." ".$item['au']."</option>"; + $rbs_addselectbox .= "<option value='".$item['dn']."'>".$item['cn']." ".$item['au']."</option>"; + } + } + $rbs_selectbox .= "<option value=''>Kein RBS</option></select>"; + $rbs_addselectbox .= "</select>"; + + if ($rbsDN == ""){ + $rbs = "Keine Einbindung"; + }else{ + $rbsdnexp = ldap_explode_dn($pool['hlprbservice'],1); + $rbs = $rbsdnexp[0]."<br>DHCP Next-Server: ".$pool['dhcpoptnext-server']."<br>DHCP Filename: ".$pool['dhcpoptfilename']; + } + + $template->assign(array("POOLDN" => $pool['dn'], "CN" => $pool['cn'], "SUBNETDN" => $pool['dhcphlpcont'], @@ -119,6 +148,10 @@ foreach ($pools as $pool){ "ALLOW" => $pool['dhcpoptallow'], "DENY" => $pool['dhcpoptdeny'], "IGNORE" => $pool['dhcpoptignore'], + "RBS" => $rbs, + "RBSSELECT" => $rbs_selectbox, + "RBSADD" => $rbs_addselectbox, + "OLDRBS" => $rbsDN, "DEFAULTLEASE" => $pool['dhcpoptdefault-lease-time'], "MAXLEASE" => $pool['dhcpoptmax-lease-time'], "MNR" => $mnr)); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php b/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php index 416654e2..bddb8282 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool_add.php @@ -6,6 +6,8 @@ $syntax = new Syntaxcheck; $range1 = $_POST['addrange1']; $range2 = $_POST['addrange2']; $unknownclients = $_POST['unknownclients']; +$rbs = $_POST['rbs']; + $mnr = $_POST['mnr']; $seconds = 2; @@ -65,7 +67,7 @@ if ($syntax->check_ip_syntax($range1) && $syntax->check_ip_syntax($range2)){ $results = ldap_mod_replace($ds,$auDN,$entry); if ($results){ echo "<br>Neue FIPBs erfolgreich eingetragen!<br>"; - $result = add_dhcppool($subnetdn,$range,$unknownclients,$result[0]['dhcphlpcont']); + $result = add_dhcppool($subnetdn,$range,$unknownclients,$result[0]['dhcphlpcont'],$rbs); if ($result){ echo "<br>Dynamischer DHCP Pool erfolgreich eingetragen!<br>" ; update_dhcpmtime(array($subnetau)); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.dwt new file mode 100644 index 00000000..8c9aefdc --- /dev/null +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.dwt @@ -0,0 +1,49 @@ +<table border='0' cellpadding='5' cellspacing='0' width='100%'> + <tr> + <td colspan='2'><h3>Dynamische DHCP Pools </h3></td> + </tr> + + <!-- BEGIN DYNAMIC BLOCK: Poolform --> + {POOLFORMULAR} + <!-- END DYNAMIC BLOCK: Poolform --> + + <tr> + <td colspan='2'><h4>Dynamischen DHCP Pool hinzufügen </h4></td> + </tr> + <tr> + <td> + <table cellpadding='7' cellspacing='0' border='0' align='left' width='90%' style='border-width: 0 0 0 0;'> + <form action='dhcppool_add.php' method='post'> + + <tr valign='bottom'> + <td width='50%' class='tab_h'><b>IP Range (innerhalb eines Subnetzes)</b><br> + weitere Ranges können später hinzugefügt werden</td> + <td width='50%' class='tab_h'><b>Unknown Clients</b></td> + </tr> + + <tr height='50' valign='top'> + <td class='tab_d'> + <input type='Text' name='addrange1' value='' size='15' maxlength='15' class='medium_form_field'> + - + <input type='Text' name='addrange2' value='' size='15' maxlength='15' class='medium_form_field'> + </td> + <td class='tab_d'> + <select name='unknownclients' size='3' class='small_form_selectbox'> + <option selected value='deny'> DENY </option> + <option value='allow'> ALLOW </option> + <option value='ignore'> IGNORE </option> + </select> + </td> + </tr> + <input type='hidden' name='mnr' value='{MNR}'> + + </table></td> + </tr> + <tr> + <td> + <input type='Submit' name='apply' value='anlegen' class='small_loginform_button'> + </form></td> + </tr> + + +</table>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.php b/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.php new file mode 100644 index 00000000..74592459 --- /dev/null +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppool_new.php @@ -0,0 +1,201 @@ +<?php + +include('../standard_header.inc.php'); + +# Dateiname und evtl. Pfad des Templates für die Webseite +$webseite = "dhcppool.dwt"; + +include('dhcp_header.inc.php'); + +$mnr = 3; +$sbmnr = -1; + +################################################################################### + +$mnr = $_GET['mnr']; +$sbmnr = $_GET['sbmnr']; + +# Menuleisten erstellen +createMainMenu($rollen, $mainnr); +createDhcpMenu($rollen, $mnr, $auDN, $sbmnr); + +################################################################################### + +$template->define_dynamic("Poolform", "Webseite"); +$template->assign(array("POOLFORMULAR" => "", + #"POOLDN" => "", + "CN" => "", + "SUBNETDN" => "", + #"SUBNET" => "", + #"RANGE1" => "", + #"RANGE2" => "", + "DESCRIPTION" => "", + "STATEMENTS" => "", + "DEFAULTLEASE" => "", + "MAXLEASE" => "", + "MNR" => $mnr)); + +# DHCP Pools Daten holen +$attributes = array("dn","cn","dhcphlpcont","dhcprange","description","dhcpstatements","dhcpoptallow", + "dhcpoptdefault-lease-time","dhcpoptdeny","dhcpoptignore","dhcpoptmax-lease-time", + "dhcpoptgeneric"); +$pools = get_dhcppools($auDN, $attributes); +#print_r($pools); + +if (count($pools) != 0){ + + + +$poolform = " + <tr><td> + <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> + + <form action='dhcppools_change.php' method='post'> + + <tr> + <td width='30%' class='tab_h'><b>Subnetz</b></td> + <td width='50%' class='tab_h'><b>IP Ranges (innerhalb Subnetz)</b></td> + <td width='20%' class='tab_h'><b>Unknown Clients</b></td> + </tr> + + <!-- BEGIN DYNAMIC BLOCK: Dhcppools --> + + <tr height='50' valign='top'> + <td class='tab_d'><b>{SUBNET}/24</b><br><br> + <input type='checkbox' name='delpool[]' value='{POOLDN}' size='10' class='medium_form_field'> + Pool löschen (Häkchen setzen)</td> + + <td class='tab_d'> + + <!-- BEGIN DYNAMIC BLOCK: Dhcpranges --> + + <input type='Text' name='range1[]' value='{RANGE1}' size='15' maxlength='15' class='medium_form_field'> + - + <input type='Text' name='range2[]' value='{RANGE2}' size='15' maxlength='15' class='medium_form_field'> + <input type='hidden' name='oldrange1[]' value='{RANGE1}'> + <input type='hidden' name='oldrange2[]' value='{RANGE2}'><br> + <input type='hidden' name='rangepooldn[]' value='{RPOOLDN}'> + + <!-- END DYNAMIC BLOCK: Dhcpranges --> + + <input type='Text' name='addrange1[]' value='' size='15' maxlength='15' class='medium_form_field'> + - + <input type='Text' name='addrange2[]' value='' size='15' maxlength='15' class='medium_form_field'> + </td> + + <td class='tab_d'> + <select name='unknownclients[]' size='3' class='small_form_selectbox'> + {UCSELECT} + </select> + <input type='hidden' name='olduc[]' value='{UCNOW}'> + </td> + </tr> + <!--<tr> + <td colspan='3' class='tab_d'><input type='checkbox' name='delpool[]' value='{POOLDN}' size='10' class='medium_form_field'> + Pool löschen (Häkchen setzen)</td> + </tr>--> + + <input type='hidden' name='pooldn[]' value='{POOLDN}'> + <input type='hidden' name='subnet[]' value='{SUBNET}'> + <input type='hidden' name='subnetau[]' value='{SUBNETAU}'> + + <!-- END DYNAMIC BLOCK: Dhcppools --> + + <input type='hidden' name='mnr' value='{MNR}'> + + </table></td> + </tr> + <tr> + <td><input type='Submit' name='apply' value='anwenden' class='small_loginform_button'> + </form></td> + </tr> + + <tr> + <td height='50'></td> + </tr>"; + +$template->assign(array("POOLFORMULAR" => $poolform)); +$template->parse("POOLFORM_LIST", "Poolform"); +#$template->clear_dynamic("Poolform"); +#$template->clear_parse("POOLFORM_LIST"); + +$template->define_dynamic("Dhcppools", "Webseite"); +$template->define_dynamic("Dhcpranges", "Webseite"); +# Für jeden Pool ... +foreach ($pools as $pool){ + + # DHCP Subnet des Pools + $subnet = ldap_explode_dn($pool['dhcphlpcont'],1); + $subnetdnexp = ldap_explode_dn( $pool['dhcphlpcont'], 0); + $subnetauexp = array_slice($subnetdnexp, 3); + $subnetau = implode(',',$subnetauexp); + + + $template->clear_parse("DHCPRANGES_LIST"); + + # DHCP Ranges + if (count($pool['dhcprange']) != 0){ + #$template->define_dynamic("Dhcpranges", "Webseite"); + if (count($pool['dhcprange']) > 1){ + foreach ($pool['dhcprange'] as $dhcprange){ + $iprange = explode('_',$dhcprange); + $template->assign(array( + "RANGE1" => $iprange[0], + "RANGE2" => $iprange[1], + "RPOOLDN" => $pool['dn'])); + $template->parse("DHCPRANGES_LIST", ".Dhcpranges"); + $template->clear_dynamic("Dhcpranges"); + } + }else{ + $iprange = explode('_',$pool['dhcprange']); + $template->assign(array( + "RANGE1" => $iprange[0], + "RANGE2" => $iprange[1], + "RPOOLDN" => $pool['dn'])); + $template->parse("DHCPRANGES_LIST", ".Dhcpranges"); + $template->clear_dynamic("Dhcpranges"); + } + } + + # Unknown-Clients + if ($pool['dhcpoptallow'] == "unknown-clients"){ + $unknownclients = "allow"; + $ucselectbox = "<option selected value='allow'> ALLOW </option> + <option value='deny'> DENY </option> + <option value='ignore'> IGNORE </option>"; + } + elseif ($pool['dhcpoptignore'] == "unknown-clients") { + $unknownclients = "ignore"; + $ucselectbox = "<option selected value='ignore'> IGNORE </option> + <option value='allow'> ALLOW </option> + <option value='deny'> DENY </option>"; + } + else{ + $unknownclients = "deny"; + $ucselectbox = "<option selected value='deny'> DENY </option> + <option value='allow'> ALLOW </option> + <option value='ignore'> IGNORE </option>"; + } + + $template->assign(array("POOLDN" => $pool['dn'], + "CN" => $pool['cn'], + "SUBNETDN" => $pool['dhcphlpcont'], + "SUBNET" => $subnet[0], + "SUBNETAU" => $subnetau, + "DESCRIPTION" => $pool['description'], + "STATEMENTS" => $pool['dhcpstatements'], + "UCSELECT" => $ucselectbox, + "UCNOW" => $unknownclients, + "DEFAULTLEASE" => $pool['dhcpoptdefault-lease-time'], + "MAXLEASE" => $pool['dhcpoptmax-lease-time'], + "MNR" => $mnr)); + $template->parse("DHCPPOOLS_LIST", ".Dhcppools"); + +} +} + +################################################################################### + +include("dhcp_footer.inc.php"); + +?>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcppools_change.php b/ldap-site-mngmt/webinterface/dhcp/dhcppools_change.php index 375cc01a..1a62cfed 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcppools_change.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcppools_change.php @@ -20,6 +20,8 @@ $addrange1 = $_POST['addrange1']; $addrange2 = $_POST['addrange2']; $uc = $_POST['unknownclients']; $olduc = $_POST['olduc']; +$rbs = $_POST['rbs']; +$oldrbs = $_POST['oldrbs']; # Array to fill with AUs to update dhcpMTime $au_to_update = array(); @@ -40,7 +42,7 @@ $mnr = $_POST['mnr']; #print_r($olduc); echo "<br><br>"; #print_r($uc); echo "<br><br>"; -$seconds = 200; +$seconds = 2; $url = "dhcppool.php?mnr=".$mnr; echo " @@ -85,6 +87,8 @@ for ($i=0;$i<count($delpool);$i++){ array_splice ( &$addrange2, $nr, 1 ); array_splice ( &$uc, $nr, 1 ); array_splice ( &$olduc, $nr, 1 ); + array_splice ( &$rbs, $nr, 1 ); + array_splice ( &$oldrbs, $nr, 1 ); } # da sich Arrays verkleinern, Wert in $key_r entsprechend verkleinern, $j=0; # Variable $j als Zähler um wieviel @@ -111,6 +115,7 @@ for ($i=0;$i<count($pooldn);$i++){ $entrydel = array(); $entryadd = array(); + $entryrbs = array(); # DENY, ALLOW, IGNORE Unknown-clients verarbeiten if ( $uc[$i] != $olduc[$i] ){ $dhcpoptdel = "dhcpopt".$olduc[$i]; @@ -125,6 +130,33 @@ for ($i=0;$i<count($pooldn);$i++){ # Subnet-AU auf DHCP-Modify setzen $au_to_update [] = $subnetau[$i]; } + # RBS + if ( $rbs[$i] != "none" && $rbs[$i] != $oldrbs[$i] ){ + $dhcpdata = get_node_data($rbs[$i],array("tftpserverip","initbootfile")); + $entryrbs ['hlprbservice'] = $rbs[$i]; + $entryrbs ['dhcpoptnext-server'] = $dhcpdata['tftpserverip']; + $entryrbs ['dhcpoptfilename'] = $dhcpdata['initbootfile']; + if ( $oldrbs[$i] == "" ){ + echo "RBS add "; print_r($entryrbs); echo "<br>"; + if ($result = ldap_mod_add($ds,$pooldn[$i],$entryrbs)){ + echo "DHCP Pool erfolgreich in RBS eingebunden.<br>"; + } + }elseif ( $rbs[$i] == "" ){ + $entryrbs ['hlprbservice'] = array(); + $entryrbs ['dhcpoptnext-server'] = array(); + $entryrbs ['dhcpoptfilename'] = array(); + echo "RBS delete "; echo "<br>"; + if ($result = ldap_mod_del($ds,$pooldn[$i],$entryrbs)){ + echo "DHCP Pool erfolgreich aus RBS gelöscht.<br>"; + } + }else{ + echo "RBS replace "; print_r($oldrbs[$i]); echo " with "; print_r($entryrbs); echo "<br>"; + if ($result = ldap_mod_replace($ds,$pooldn[$i],$entryrbs)){ + echo "DHCP Pool RBS Einbindung erfolgreich geändert.<br>"; + } + } + } + # Ranges hinzufügen if ( $addrange1[$i] != "" && $addrange2[$i] != "" ){ if ($syntax->check_ip_syntax($addrange1[$i]) && $syntax->check_ip_syntax($addrange2[$i])){ @@ -132,7 +164,7 @@ for ($i=0;$i<count($pooldn);$i++){ $add1 = strrev(strchr(strrev($addrange1[$i]), ".")); $add2 = strrev(strchr(strrev($addrange2[$i]), ".")); if ( $net == $add1 && $net == $add2 ){ - + printf("Range in Pool %s hinzufügen<br>",$pooldn[$i]); # Range zusammenstellen $newrange = implode("_", array($addrange1[$i],$addrange2[$i])); diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.dwt b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.dwt index 76c2913f..514f5b72 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.dwt @@ -1,16 +1,23 @@ <table border='0' cellpadding='5' cellspacing='0' width='100%'> <tr> - <td colspan='2'><h3>DHCP Subnets</h3> + <td width='80%'> + <h3>DHCP Subnets</h3> + Übersicht der in <b>{AU}</b> angelegten <b>DHCP Subnets</b>:<br> + Subnetz (-maske), Status der Einbindung in den zentralen DHCP Dienst, sowie Informationen zu angelegten dynamischen DHCP Pools des Subnetzes.<br><br> + Zur <b>Verwaltungsmaske</b> eines bestimmten Subnetzes gelangen Sie durch klicken auf entsprechendes Subnetz.<br><br> + DHCP Subnets können nur für Ihnen <b>komplett zugewiesene Subnetze</b> angelegt werden.<br> + Über die <b>Eingabemaske</b> können Sie noch nicht als DHCP Subnets anlegte komplette Subnetze eintragen (Menüpunkt links "Neues DHCP Subnet anlegen"). </td> + <td> </td> </tr> - <tr><td> + <tr><td colspan='2'> <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'> <tr> <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Subnet</b></td> <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Netmask</b></td> - <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>DHCP Service</b></td> - <td width='45%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Dynamic Pools (IP Ranges)</b></td> + <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>DHCP Service</b></td> + <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Dynamic Pools (IP Ranges)</b></td> </tr> <!-- BEGIN DYNAMIC BLOCK: Subnets --> diff --git a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.php b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.php index 1bf6b2e1..88e10576 100644 --- a/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.php +++ b/ldap-site-mngmt/webinterface/dhcp/dhcpsubnets.php @@ -69,7 +69,7 @@ foreach ($subnet_array as $subnet){ $dhcpservice = ""; if ($subnet['dhcphlpcont'] != ""){ $exp = ldap_explode_dn($subnet['dhcphlpcont'],1); - $dhcpservice = $exp[0]." [".$exp[2]."]"; + $dhcpservice = $exp[0]."<br>[".$exp[2]."]"; } $subnetcn = "<a href='dhcpsubnet.php?dn=".$subnet['dn']."&mnr=".$mnr."' class='headerlink'><b>".$subnet['cn']."</b></a>"; diff --git a/ldap-site-mngmt/webinterface/dhcp/menu.dwt b/ldap-site-mngmt/webinterface/dhcp/menu.dwt index 037bdf15..24e68a3c 100644 --- a/ldap-site-mngmt/webinterface/dhcp/menu.dwt +++ b/ldap-site-mngmt/webinterface/dhcp/menu.dwt @@ -6,11 +6,14 @@ <!-- BEGIN DYNAMIC BLOCK: Hauptmenu --> <tr valign='middle' align='left'> -
+ <td width='8%' align='right' style="border-style=none;">{ICON}</td> - <td width="8%" align="left" style="border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td>
+ <td width="8%" align="left" style="border-width:1 0 1 1;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> </td> <td width="74%" align="left" style="border-width:1 1 1 0;border-color:#000000;border-style:solid;padding:5;background-color:{FARBE}"> - <a href="{LINK_M}" style="text-decoration:none"><b class="standard_schrift">{TEXT_M}</b></a></td>
+ <a href="{LINK_M}" style="text-decoration:none"> + <code class="submenue_schrift">{TEXT_M}</code> + </a> + </td> <td width='10%'> </td> </tr> @@ -22,7 +25,7 @@ <!-- END DYNAMIC BLOCK: Submenu --> <tr height='5'></tr> - <!-- END DYNAMIC BLOCK: Hauptmenu -->
+ <!-- END DYNAMIC BLOCK: Hauptmenu --> diff --git a/ldap-site-mngmt/webinterface/dns/dns.dwt b/ldap-site-mngmt/webinterface/dns/dns.dwt index ec6d0cbc..968d8c16 100644 --- a/ldap-site-mngmt/webinterface/dns/dns.dwt +++ b/ldap-site-mngmt/webinterface/dns/dns.dwt @@ -5,18 +5,18 @@ <link rel='stylesheet' href='../styles.css' type='text/css'></head> <body> -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> <tr> - <td width='35%'> + <td width='30%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> - <td width='40%'> + <td width='45%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top' align='left'> <td> @@ -36,16 +36,13 @@ </table> </td> </tr> + <tr> + <td colspan='3'>{MAINMENU}</td> + </tr> </table> -<table cellpadding='5' cellspacing='0' border='0' width='95%' height='7%'> -<tr> - <td>{MAINMENU}</td> -</tr> -</table> - -<hr align='center' width='98%' noshade> - +<!-- <hr align='center' width='98%' noshade> --> +<br> <table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'> diff --git a/ldap-site-mngmt/webinterface/hauptmenue.dwt b/ldap-site-mngmt/webinterface/hauptmenue.dwt index 8501041d..7295b5f6 100644 --- a/ldap-site-mngmt/webinterface/hauptmenue.dwt +++ b/ldap-site-mngmt/webinterface/hauptmenue.dwt @@ -1,15 +1,15 @@ -<table width='100%' height="25" border="0" cellspacing="0" cellpadding="5">
-<tr height="15"> -
+<table width='100%' height="25" border="0" cellspacing="0" cellpadding="3">
+<tr height="25">
+ <td width='5'></td>
<!-- BEGIN DYNAMIC BLOCK: Mainmenu -->
<td width='2'></td>
- <td height="20" width="110" align="center" style="border-width:1 1 1 1;border-color:#000000;border-style:solid;background-color:{MFARBE}"> - <a href="{MLINK_M}" style="text-decoration:none"><b class="standard_schrift"> - {MTEXT_M}</b></a> + <td height="20" width="120" align="center" style="border-width:1 1 0 1;border-color:#505050;border-style:solid;background-color:{MFARBE}">
+ <a href="{MLINK_M}" style="text-decoration:none"><code class="menue_schrift">
+ {MTEXT_M}</code></a>
</td>
<!-- END DYNAMIC BLOCK: Mainmenu -->
- <td> </td> + <td> </td>
</tr>
diff --git a/ldap-site-mngmt/webinterface/home.dwt b/ldap-site-mngmt/webinterface/home.dwt index 1b25eaf8..9d89dadc 100644 --- a/ldap-site-mngmt/webinterface/home.dwt +++ b/ldap-site-mngmt/webinterface/home.dwt @@ -1,12 +1,10 @@ - - -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> - <tr> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> + <tr valign='middle'> <td width='35%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> - <tr valign='top'> + <tr> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> @@ -33,9 +31,6 @@ </tr> </table> -<hr align='center' width='98%' noshade> - - <table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'> @@ -44,22 +39,11 @@ <table border='0' cellpadding='10' cellspacing='0' width='100%'> <tr> - <td colspan='6'><h3>Home - Alle AUs in denen Sie Administrator sind</h3></td> - </tr> - <tr> - <td height='10'></td> - </tr> - <tr> - <td colspan='2'> - Sie sind in folgenden Administrativen Einheiten (AU) bzw. Abteilungen Administrator in einer - bestimmten Funktion (Rolle). Welche Rolle Sie in der jeweiligen AU haben entnehmen Sie bitte - der Tabelle.<br> + <td colspan='2'><h3>Admin Units (AU) in denen Sie Administrator sind</h3> Um zu den Administrations-Seiten einer AU zu kommen, wählen Sie entsprechenden Link. </td> - </tr> - <tr> - <td height='10'></td> - </tr> + </tr> + <tr> <td> <table cellpadding='7' cellspacing='0' border='1' align='left' width='100%' style='border-width: 0 0 0 0;'> @@ -72,7 +56,7 @@ <tr> <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'> <a href='zwischen.php?audn={AUDN}&rollen={ROLLEN}' class='headerlink'>{AU}</a> </td> - <td width='45%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{AUDN} </td> + <td width='45%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{CN} </td> <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{MA} </td> </tr> <!-- END DYNAMIC BLOCK: Aus --> diff --git a/ldap-site-mngmt/webinterface/index.dwt b/ldap-site-mngmt/webinterface/index.dwt index 36fe2223..048a34cb 100644 --- a/ldap-site-mngmt/webinterface/index.dwt +++ b/ldap-site-mngmt/webinterface/index.dwt @@ -2,11 +2,26 @@ <head> <title>{SEITENTITEL}</title> - <link rel='stylesheet' href='styles.css' type='text/css'></head> + <link rel='stylesheet' href='styles.css' type='text/css'> + +</head> <body> - + +<!--<table cellpadding='0' cellspacing='0' border='0' align='center' width='100%' height='100%'> + <tr height='10'> + <td colspan='3'></td> + </tr> + <tr height='100%'> + <td width='2%'></td> + <td width='96%' style='border-color: #C0C0C0; border-style: solid; border-width: 1 1 1 1;'>--> + {HAUPTFENSTER} + <!--</td> + <td width='2%'></td> + </tr> +</table>--> + </body> -</html>
\ No newline at end of file +</html>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/index.php b/ldap-site-mngmt/webinterface/index.php index a519479d..be6cfe50 100644 --- a/ldap-site-mngmt/webinterface/index.php +++ b/ldap-site-mngmt/webinterface/index.php @@ -1,6 +1,6 @@ <?php # Nach dem Logout wird die Session beim Aufruf der index.php zerstört. -if(isset($_POST['Logout'])) { +if(isset($_POST['Logout']) || $_SESSION['status'] != "in") { session_start(); session_unregister('uid'); session_unregister('userPassword'); @@ -8,13 +8,17 @@ if(isset($_POST['Logout'])) { session_unregister('dn'); session_unregister('roles'); session_unregister('au_dn'); + session_unregister('status'); session_destroy(); } +########################################################### + #Pfad festlegen wo die Dateien sich befinden -include('standard_header.inc.php'); +#include('standard_header.inc.php'); +include("class.FastTemplate.php"); -$titel = "Rechner und IP Management Startseite"; +$titel = "Zentrales Client / IP Management"; $webseite = "start.dwt"; # neues Template-Objekt erstellen @@ -23,10 +27,8 @@ $template = new FastTemplate("."); $template->define(array("Vorlage" => "index.dwt", "Login" => "login_form.inc.html", "Webseite" => $webseite)); - $template->assign(array("SEITENTITEL" => $titel)); - ############################################################ # Daten in die Vorlage parsen @@ -40,4 +42,5 @@ $template->parse("PAGE", "Vorlage"); # Fertige Seite an den Browser senden $template->FastPrint("PAGE"); + ?> diff --git a/ldap-site-mngmt/webinterface/ip/ip.dwt b/ldap-site-mngmt/webinterface/ip/ip.dwt index 804c18ef..9dd6a28e 100644 --- a/ldap-site-mngmt/webinterface/ip/ip.dwt +++ b/ldap-site-mngmt/webinterface/ip/ip.dwt @@ -11,7 +11,7 @@ <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> diff --git a/ldap-site-mngmt/webinterface/lib/au_management_functions.php b/ldap-site-mngmt/webinterface/lib/au_management_functions.php index 35881fec..d924aec0 100644 --- a/ldap-site-mngmt/webinterface/lib/au_management_functions.php +++ b/ldap-site-mngmt/webinterface/lib/au_management_functions.php @@ -53,7 +53,7 @@ function new_childau($childDN,$childou,$childcn,$childdesc,$mainadmin){ if ($resultAU = ldap_add($ds,$childDN,$entryAU)){ # alle Au Container anlegen - $containers = array("computers","dhcp","groups","rbs","roles"); + $containers = array("computers","dhcp","groups","pxe","rbs","roles"); foreach ($containers as $cont){ $entryCont = array(); $entryCont ['objectclass'] = "AUContainer"; @@ -426,7 +426,7 @@ function change_child_domain($childdomain, $oldchilddomain, $childDN, $assocdom, $entryAD['associateddomain'] = $assocdom; #print_r($entryAD); echo "<br>"; if ($resultAD = ldap_mod_del($ds,$childDN,$entryAD)){ - + # neuen dc Knoten anlegen mit Rollen ... if(new_child_domain($childdomain, $childDN, $assocdom, $domDN)){ diff --git a/ldap-site-mngmt/webinterface/lib/commonlib.inc.php b/ldap-site-mngmt/webinterface/lib/commonlib.inc.php index e827c811..95fc0776 100644 --- a/ldap-site-mngmt/webinterface/lib/commonlib.inc.php +++ b/ldap-site-mngmt/webinterface/lib/commonlib.inc.php @@ -5,20 +5,20 @@ * attributesToString($entry, $name, $delemiter = "", $pattern = "", $empty = " ") - * Gibt die Attribute eines LDAP-Eintrages formatiert aus * -* Gibt die Attribute des Schlüssels $name des LDAP-Eintraes $entry aus. Mehrere Werte werden mit $delemiter -* voneinander getrennt. Für jeden Wert des Attributes wird in $pattern an die Stelle "$name" (Dallarzeichen plus die Bezeichnung) -* das aktuelle Attribut eingefügt - ähnlich (aber nicht gleich!) der String-Interpretation von PHP. Falls $pattern = "" wird -* einfach der Wert zurück gegeben. Falls für den Schlüssel keine Attribut-Werte definiert sind, wird $empty zurück gegeben +* Gibt die Attribute des Schl�ssels $name des LDAP-Eintraes $entry aus. Mehrere Werte werden mit $delemiter +* voneinander getrennt. F�r jeden Wert des Attributes wird in $pattern an die Stelle "$name" (Dallarzeichen plus die Bezeichnung) +* das aktuelle Attribut eingef�gt - �hnlich (aber nicht gleich!) der String-Interpretation von PHP. Falls $pattern = "" wird +* einfach der Wert zur�ck gegeben. Falls f�r den Schl�ssel keine Attribut-Werte definiert sind, wird $empty zur�ck gegeben * * @param array entry LDAP-Array * @param string name Hashbezeichnung * @param string delimiter Trennzeichen * @param string pattern Muster -* @param string empty Zeichen für leere Felder +* @param string empty Zeichen f�r leere Felder * * @return string Array-Werte als String * -* @author Timothy Burk, lt. Musterlösung +* @author Timothy Burk, lt. Musterl�sung * */ @@ -51,7 +51,7 @@ * liefert den ($i-ten) Wert des Attributes $name aus $entry * Eingabe ist entweder ein Datensatz aus dem ldapsearch-Ergebnis, oder * ein um die Meta-Infos (count) bereinigtes Ergebnis - * sorry für die mangelhafte Doku - Thomas + * sorry f�r die mangelhafte Doku - Thomas */ function oneAttribute($entry, $name, $empty = "", $i = 0) { @@ -72,11 +72,11 @@ /** * redirect($seconds, $url, $msg = "", $addSessionId = TRUE) - leitet den Benutzer auf eine andere Seite weiter * - * Leitet den Benuzter nach $seconds Sekunden auf die Seite $url weiter. Während der Wartezeit bekommt der Benutzer + * Leitet den Benuzter nach $seconds Sekunden auf die Seite $url weiter. W�hrend der Wartezeit bekommt der Benutzer * die Information $msg mitgeteilt (Achtung: keine automatische Formatierung der $msg). Wenn $addSessionId TRUE ist, - * dann wird an den URL die SessionId angehängt. + * dann wird an den URL die SessionId angeh�ngt. * - * @author Timothy Burk, lt. Musterlösung + * @author Timothy Burk, lt. Musterl�sung */ function redirect($seconds, $url, $msg = "", $addSessionId = TRUE) { @@ -106,8 +106,8 @@ /** * getRights($ds, $userDn) - ermittelt die Rechte eines Users. * -* Die Funktion erwartet ein Directory-Handle und den vollständigen Distiguished Name des -* Users. Rückgabewert ist ein numerisches eindimensionales Array, welches die Rechte enthält. +* Die Funktion erwartet ein Directory-Handle und den vollst�ndigen Distiguished Name des +* Users. R�ckgabewert ist ein numerisches eindimensionales Array, welches die Rechte enth�lt. * * @param resource ds LDAP Directory Handle * @param string userDn Distinguishedname des Users @@ -158,10 +158,10 @@ function getRoles($ds, $userDN) { /** -* createMenu($rechte) - erstellt die Menuleiste abhängig von der Rechten des Users. +* 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 +* 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 @@ -178,7 +178,7 @@ function createMainMenu($rollen , $mainnr) { $mipbs = get_maxipblocks_au($auDN); #echo "MIPB: "; print_r ($mipbs); echo "<br>"; if ($mipbs[0] != ""){ - $dhcplink = "dhcp/dhcp.php"; + $dhcplink = "dhcp/dhcpsubnets.php?mnr=0"; }else{ $dhcplink = "dhcp/no_dhcp.php"; } @@ -193,7 +193,7 @@ function createMainMenu($rollen , $mainnr) { #array("link" => "ip/ip.php", # "text" => "IP Management", # "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), - array("link" => "computers/computers.php", + array("link" => "computers/hostoverview.php?sort=hostname", "text" => "Rechner", "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), array("link" => $dhcplink, @@ -277,7 +277,7 @@ function vergleicheArrays($a, $b) { /** * inputArraySauber($Array) * -* Löscht aus einem Array, welches POST-Daten enthält leere Felder. Nötig für die Formatierung +* L�scht aus einem Array, welches POST-Daten enth�lt leere Felder. N�tig f�r die Formatierung * vor dem Anlegen neuer Objekte. * * @param array _POST-Array @@ -307,7 +307,7 @@ function inputArraySauber($Array) { /** * numArraySauber($Array) * -* Löscht aus einemn numerischen Array leere Felder. +* L�scht aus einemn numerischen Array leere Felder. * * @param array Numerisches Array * @@ -335,8 +335,8 @@ function numArraySauber($Array) { * ldapArraySauber($Array, [$delEmpty]) * * Bereinigt ein dreidimensionales Array, so wie es aus der Funktion uniLdapSearch kommt. -* Dabei werden alle count-Felder sowie alle numerischen Felder in denen der Schlüssel -* gespeichert ist entfernt. Attributarrays mit nur einem Element werden gelöscht, das Element +* Dabei werden alle count-Felder sowie alle numerischen Felder in denen der Schl�ssel +* gespeichert ist entfernt. Attributarrays mit nur einem Element werden gel�scht, das Element * wir als Skalar gespeichert. * Wenn $delEmpty = TRUE ist, werden nur nichtleere Felder gespeichert. * @@ -390,14 +390,14 @@ function ldapArraySauber($Array, $delEmpty = FALSE) { /** * personOptionen($rechte) * -* Enthält die möglichen Optionen, die auf einen User angewandt werden können als +* Enth�lt die m�glichen Optionen, die auf einen User angewandt werden k�nnen als * zweidimensionales Array mit folgenden Attributen: * [ziel]: Aufzurufendes PHP-Skript -* [text]: Beschriftung der Schaltfläche +* [text]: Beschriftung der Schaltfl�che * [desc]: Beschreibung der Funktion -* [rechte][]: Array mit den erforderlichen Rechten für die jeweilige Option. array("alle") steht für "ohne Einschränkung". +* [rechte][]: Array mit den erforderlichen Rechten f�r die jeweilige Option. array("alle") steht f�r "ohne Einschr�nkung". * -* Dieses in dieser Funktion gespeicherte Array wird abhängig von den übergebenen +* Dieses in dieser Funktion gespeicherte Array wird abh�ngig von den �bergebenen * Rechten um nicht erlaubte Optionen reduziert und dann ausgegeben. * * @param array $rechte Eindimensionales Array $_SESSION['rechte'] @@ -411,12 +411,12 @@ function personOptionen($rechte) { $optionen = array(); $optionen[] = array("ziel" => $START_PATH."person/datensatz.php?aktion=edit", "text" => "Userdaten bearbeiten", - "desc" => "Anzeigen und Ändern der persönlichen Daten des Users.", + "desc" => "Anzeigen und �ndern der pers�nlichen Daten des Users.", "rechte" => array("writeMitarbeiter"), "hidden" => array("aktion" => "edit")); $optionen[] = array("ziel" => $START_PATH."person/datensatz.php", - "text" => "Datensatz löschen", - "desc" => "Der User wird vollständig mit allen Daten aus der Datenbank gelöscht.", + "text" => "Datensatz l�schen", + "desc" => "Der User wird vollst�ndig mit allen Daten aus der Datenbank gel�scht.", "rechte" => array("writeMitarbeiter"), "hidden" => array("aktion" => "delete")); $optionen[] = array("ziel" => $START_PATH."person/datensatz.php", @@ -425,8 +425,8 @@ function personOptionen($rechte) { "rechte" => array("writeMitarbeiter"), "hidden" => array("aktion" => "archiv")); $optionen[] = array("ziel" => $START_PATH."person/vertrag_show.php", - "text" => "Verträge bearbeiten", - "desc" => "Bearbeiten oder Anlegen eines Vertrages. Sie können dabei zwischen verschiedenen Vertragsarten wählen.", + "text" => "Vertr�ge bearbeiten", + "desc" => "Bearbeiten oder Anlegen eines Vertrages. Sie k�nnen dabei zwischen verschiedenen Vertragsarten w�hlen.", "rechte" => array("writeVertrag", "readVertrag")); $optionen[] = array("ziel" => $START_PATH."urlaub/krank_angabe.php", "text" => "Krankheitstage", @@ -435,7 +435,7 @@ function personOptionen($rechte) { "hidden" => array("uidToChange" => $utc_uid, "GName" => $utc_cn)); $optionen[] = array("ziel" => $START_PATH."urlaub/liste.php", "text" => "Urlaubstage anzeigen", - "desc" => "Urlaubstage des Users in grafischer Übersicht anzeigen.", + "desc" => "Urlaubstage des Users in grafischer �bersicht anzeigen.", "rechte" => array("readKrankheitUrlaub"), "hidden" => array("wer" => $utc_uid, "wann" => "g", "sub" => $utc_cn)); $optionen[] = array("ziel" => $START_PATH."person/rechte_show.php", @@ -461,12 +461,12 @@ function personOptionen($rechte) { * makeArrFromAttribute($a, $attribute) * * Ein zweidimensionales Array wird nach der ersten Dimension durchlaufen. -* Dabei werden die Werte des angegebenen Attributes $attribute für alle -* Einträge extrahiert und in einem neuen Array gespeichert, welches -* anschließend zurückgegeben wird. +* Dabei werden die Werte des angegebenen Attributes $attribute f�r alle +* Eintr�ge extrahiert und in einem neuen Array gespeichert, welches +* anschlie�end zur�ckgegeben wird. * * @param array $a Zweidimensionales Array -* @param string $attribute Schlüsselname der zweiten Dimension +* @param string $attribute Schl�sselname der zweiten Dimension * * @return array Eindimensionales numerisches Array mit den Attributwerten. * @@ -486,20 +486,20 @@ function makeArrFromAttribute($a, $attribute) { /** * sortArrayByKey sortiert die 1.Dimension von bis zu 5-dimensionalen Arrays -* nach den Werten in einem beliebigen Schlüssel in beliebiger Dimension +* nach den Werten in einem beliebigen Schl�ssel in beliebiger Dimension * -* PS: die Funktion sortArrayByKey ist nur sinnvoll, wenn sich die Array-Einträge -* der 1.Dim sehr ähnlich sind, sprich bei Suchergebnissen!! +* PS: die Funktion sortArrayByKey ist nur sinnvoll, wenn sich die Array-Eintr�ge +* der 1.Dim sehr �hnlich sind, sprich bei Suchergebnissen!! * * @param array $array : das zu sortierende Array -* @param string $sortKey : der Schlüssel, nach dem sortiert werden soll +* @param string $sortKey : der Schl�ssel, nach dem sortiert werden soll * Bsp.: * es soll nach $array[$i][$j][$k]['sortkey'] sortiert werden * => $sortKey = "$j#$k#sortkey" -* @param string $sortDirection : die Sortierrichtung, gültige Werte sind "up", "down" +* @param string $sortDirection : die Sortierrichtung, g�ltige Werte sind "up", "down" * * -* @author Daniel Höfler +* @author Daniel H�fler */ function sortArrayByKey($array, $sortKey, $sortDirection = "up") { $sortKeyArray = explode("#", $sortKey); @@ -533,7 +533,7 @@ function sortArrayByKey($array, $sortKey, $sortDirection = "up") { break; } } else { - echo "zu viele Dimensionen!! Höchstens 4 Dimensionen möglich"; + echo "zu viele Dimensionen!! H�chstens 4 Dimensionen m�glich"; return false; } if($sortDirection == "up") { @@ -541,7 +541,7 @@ function sortArrayByKey($array, $sortKey, $sortDirection = "up") { } elseif($sortDirection == "down") { arsort($toSortKeys); } else { - echo "Keine gültige Sortierrichtung!! Wählen sie \"up\" oder \"down\"\n"; + echo "Keine g�ltige Sortierrichtung!! W�hlen sie \"up\" oder \"down\"\n"; return false; } $sortArray = array(); diff --git a/ldap-site-mngmt/webinterface/lib/config.inc.php b/ldap-site-mngmt/webinterface/lib/config.inc.php index cc26d0fc..18a59409 100644 --- a/ldap-site-mngmt/webinterface/lib/config.inc.php +++ b/ldap-site-mngmt/webinterface/lib/config.inc.php @@ -1,30 +1,36 @@ <?php - #Pfad festlegen wo die Anwendungsskripte sich befinden - #$START_PATH="http://localhost/lsm/"; - $START_PATH="https://dhcp.uni-freiburg.de/"; - - # Anlegen einer Variablen für den Speicherort von den CSVs - # $TMPPATH_CSV="/home/gruppe1/public_html/htdocs/"; - - # einige LDAP-Angaben: - # der Anwendungs-LDAP - define('LDAP_HOST', 'ldap://foo.ruf.uni-freiburg.de'); - #define('LDAP_HOST', 'ldaps://foo.ruf.uni-freiburg.de'); - define('LDAP_PORT', 389); - #define('LDAP_PORT', 636); - $suffix = "dc=uni-freiburg,dc=de"; - $domsuffix = "uni-freiburg.de"; - $rootAU = "ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; - - # der LDAP-Server für die Authentisierung der User - #define('LDAP_HOST', 'localhost'); - #define('LDAP_PORT', 389); - #$suffix_rz = "dc=uni-freiburg,dc=de"; - - # einige Sachen, die aus Sicherheitsgründen in produktiven Umgebungen geändert werden sollten!!! - #$dummyUid = "rz-ldap"; // Dummy-User für einige Aktionen - muss angelegt werden!!! - #$dummyPassword = "dummy"; - - #$standardPassword = "..."; // das Passwort mit dem alle User im Anwendungsldap angelegt werden!!! + # URL and Root Path of LSM Webinterface + $START_PATH="https://dhcp.uni-freiburg.de/"; + #$START_PATH="http://localhost/lsm/"; + + ################################### + # LSM LDAP Directory Information + + # LDAP Server + # Master + define('LDAP_HOST', 'ldap://foo.ruf.uni-freiburg.de'); + #define('LDAP_HOST', 'ldaps://foo.ruf.uni-freiburg.de'); + # Slave + #define('LDAP_HOST', 'ldap://bar.ruf.uni-freiburg.de'); + #define('LDAP_HOST', 'ldaps://bar.ruf.uni-freiburg.de'); + + # Local for Testing + #define('LDAP_HOST', 'localhost'); + + define('LDAP_PORT', 389); + #define('LDAP_PORT', 636); + + $suffix = "dc=uni-freiburg,dc=de"; + $domsuffix = "uni-freiburg.de"; + $rootAU = "ou=UniFreiburg,ou=RIPM,dc=uni-freiburg,dc=de"; + ################################### + + + # einige Sachen, die aus Sicherheitsgr�nden in produktiven Umgebungen ge�ndert werden sollten!!! + #$dummyUid = "rz-ldap"; // Dummy-User f�r einige Aktionen - muss angelegt werden!!! + #$dummyPassword = "dummy"; + + #$standardPassword = "..."; // das Passwort mit dem alle User im Anwendungsldap angelegt werden!!! + ?> diff --git a/ldap-site-mngmt/webinterface/lib/dhcp_management_functions.php b/ldap-site-mngmt/webinterface/lib/dhcp_management_functions.php index 05d47f49..97259728 100644 --- a/ldap-site-mngmt/webinterface/lib/dhcp_management_functions.php +++ b/ldap-site-mngmt/webinterface/lib/dhcp_management_functions.php @@ -673,18 +673,18 @@ function check_ip_in_subnet($ip,$subnet) { ######################### # Pools -function add_dhcppool ($dhcpsubnetdn,$range,$unknownclients,$dhcpservicedn){ +function add_dhcppool ($dhcpsubnetdn,$range,$unknownclients,$dhcpservicedn,$rbssrvdn){ global $ds, $suffix, $auDN, $ldapError; - + if(!($result = uniLdapSearch($ds, "cn=dhcp,".$auDN,"(objectclass=*)", array("cn"), "dn", "list", 0, 0))) { - # redirect(5, "", $ldapError, FALSE); - echo "no search"; - die; + # redirect(5, "", $ldapError, FALSE); + echo "no search"; + die; } $result = ldapArraySauber($result); - $dhcpcn_array = array(); + $dhcpcn_array = array(); foreach ($result as $item){ $dhcpcn_array [] = $item['cn']; } @@ -696,7 +696,7 @@ function add_dhcppool ($dhcpsubnetdn,$range,$unknownclients,$dhcpservicedn){ } } $dhcppoolDN = "cn=".$cn.",cn=dhcp,".$auDN; - + $entrydhcp ['objectclass'][0] = "dhcpPool"; $entrydhcp ['objectclass'][1] = "dhcpOptions"; $entrydhcp ['objectclass'][2] = "top"; @@ -710,15 +710,17 @@ function add_dhcppool ($dhcpsubnetdn,$range,$unknownclients,$dhcpservicedn){ }else{ $entrydhcp ['dhcpoptdeny'] = "unknown-clients"; } + if ( $rbssrvdn != "none" ){ + $entrydhcp ['hlprbservice'] = $rbssrvdn; + } print_r($dhcppoolDN);echo "<br><br>"; print_r($entrydhcp);echo "<br><br>"; - + if ($result = ldap_add($ds,$dhcppoolDN,$entrydhcp)){ return 1; }else{return 0;} - } diff --git a/ldap-site-mngmt/webinterface/lib/host_management_functions.php b/ldap-site-mngmt/webinterface/lib/host_management_functions.php index a45304bc..502dccb2 100644 --- a/ldap-site-mngmt/webinterface/lib/host_management_functions.php +++ b/ldap-site-mngmt/webinterface/lib/host_management_functions.php @@ -173,6 +173,21 @@ function delete_host($hostDN){ } } +function check_hostname($hostname){ + + global $ds, $suffix, $auDN, $ldapError; + + $brothercheck = 0; + $brotherhosts = get_hosts($auDN,array("hostname"),""); + + foreach ($brotherhosts as $item){ + if( $item['hostname'] == $hostname ){ + $brothercheck = 1; + break; + } + } + return $brothercheck; +} ############################################################################### # Funktionen zur Verwaltung von Rechnergruppen @@ -400,6 +415,60 @@ function change_mc_timerange($mcDN,$newmcDN,$mctimerange){ } } - +##################################################################### +# Natürliches Sortieren (x.x.4.9 vor x.x.4.11 ) von mehr-dim Arrays der Art: +# Array ( +# [0] => Array ( +# [hostname] = client01 +# [ipaddress] = 132.230.4.11 +# ) +# [1] => Array ( +# [hostname] = client02 +# [ipaddress] = 132.230.4.9 +# ) +# ) + +/** + * @return Returns the array sorted as required + * @param $aryData Array containing data to sort + * @param $strIndex Name of column to use as an index + * @param $strSortBy Column to sort the array by + * @param $strSortType String containing either asc or desc [default to asc] + * @desc Naturally sorts an array using by the column $strSortBy + */ +function array_natsort($aryData, $strIndex, $strSortBy, $strSortType=false){ + + // if the parameters are invalid + if (!is_array($aryData) || !$strIndex || !$strSortBy){ + // return the array + return $aryData; + } + // create our temporary arrays + $arySort = $aryResult = array(); + // loop through the array + foreach ($aryData as $aryRow){ + // set up the value in the array + $arySort[$aryRow[$strIndex]] = $aryRow[$strSortBy]; + } + // apply the natural sort + natsort($arySort); + // if the sort type is descending + if ($strSortType=="desc"){ + // reverse the array + arsort($arySort); + } + // loop through the sorted and original data + foreach ($arySort as $arySortKey => $arySorted){ + foreach ($aryData as $aryOriginal){ + // if the key matches + if ($aryOriginal[$strIndex]==$arySortKey){ + // add it to the output array + array_push($aryResult, $aryOriginal); + } + } + } + + return $aryResult; +} ?>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/lib/ldap.inc.php b/ldap-site-mngmt/webinterface/lib/ldap.inc.php index f7f6be07..79d50e61 100644 --- a/ldap-site-mngmt/webinterface/lib/ldap.inc.php +++ b/ldap-site-mngmt/webinterface/lib/ldap.inc.php @@ -1,13 +1,13 @@ <?php /** * ldap.inc.php - LDAP-Bibliothek -* Diese Bibliothek enthält alle Funktionen für den Zugriff auf den LDAP-Server. +* Diese Bibliothek enth�lt alle Funktionen f�r den Zugriff auf den LDAP-Server. * * @param string ldapError * @param resource ds * -* @author Timothy Burk, Mahir Yildirim, Johannes Sprenger, Daniel Höfler -* @copyright Timothy Burk, Mahir Yildirim, Johannes Sprenger, Daniel Höfler +* @author Timothy Burk, Mahir Yildirim, Johannes Sprenger, Daniel H�fler +* @copyright Timothy Burk, Mahir Yildirim, Johannes Sprenger, Daniel H�fler */ //Konfiguration laden require_once("config.inc.php"); @@ -15,9 +15,9 @@ require_once("config.inc.php"); $ldapError = null; /** -* uniLdapConnect($userRdn, $userPwd) - Führt den Bind am Gruppe1-LDAP-Server durch +* uniLdapConnect($userRdn, $userPwd) - F�hrt den Bind am Gruppe1-LDAP-Server durch * -* @param string userRdn UID für den Login +* @param string userRdn UID f�r den Login * @param string userPwd Loginpasswort * * @return boolean Erfolg bzw. Misserfolg @@ -38,7 +38,7 @@ function uniLdapConnect($userRdn = "", $userPwd = "") { if($userRdn != "" && $userPwd != "") { # Anmeldung als User. if($result = @ldap_bind($ds, "uid=".$userRdn.",ou=people,".$suffix, $userPwd)) { - # Bind erfolgreich ausgeführt + # Bind erfolgreich ausgef�hrt return $ds; } else { # Bind nicht erfolreich. @@ -53,7 +53,7 @@ function uniLdapConnect($userRdn = "", $userPwd = "") { } else { # Anonymer Bind. if($result = ldap_bind($ds)) { - # Anonymer Bind erfolgreich ausgeführt + # Anonymer Bind erfolgreich ausgef�hrt return $ds; } else { # Anonymer Bind nicht erfolreich. @@ -77,9 +77,9 @@ function uniLdapConnect($userRdn = "", $userPwd = "") { /** -* rzLdapConnect($userRdn, $userPwd) - Führt den Bind am RZ-LDAP-Server durch +* rzLdapConnect($userRdn, $userPwd) - F�hrt den Bind am RZ-LDAP-Server durch * -* @param string userRdn UID für den Login +* @param string userRdn UID f�r den Login * @param string userPwd Loginpasswort * * @return boolean Erfolg bzw. Misserfolg @@ -99,7 +99,7 @@ function rzLdapConnect($userRdn = "", $userPwd = "") { if($userRdn != "" && $userPwd != "") { # Anmeldung als User. if($result = @ldap_bind($ds, "uid=".$userRdn.",ou=people,".$suffix_rz, $userPwd)) { - # Bind erfolgreich ausgeführt + # Bind erfolgreich ausgef�hrt return $ds; } else { # Bind nicht erfolreich. @@ -113,7 +113,7 @@ function rzLdapConnect($userRdn = "", $userPwd = "") { } else { # Anonymer Bind. if($result = ldap_bind($ds)) { - # Anonymer Bind erfolgreich ausgeführt + # Anonymer Bind erfolgreich ausgef�hrt return $ds; } else { # Anonymer Bind nicht erfolreich. @@ -133,14 +133,14 @@ function rzLdapConnect($userRdn = "", $userPwd = "") { /** * uniLdapSearch($ds, $base, $filter, $attributes, $sort, $mode, $resultLimit, $timeout) - * Sucht Einträge im LDAP-Server. + * Sucht Eintr�ge im LDAP-Server. * - * Durchsucht den LDAP-Server vom Punkt $base ab nach Einträgen, die $filter entsprechen. Falls in $sort ein Feldname angegeben - * wurde, so wird danach sortiert. (ACHTUNG: die Funktion ldap_sort() ist nicht dokumentiert! Ich weiß nicht ob sie Sortierung - * nach mehreren Feldern zulässt und wie sie sich verhält, wenn zu einem Attribut mehrere Werte existieren.) $mode definiert die - * Art der Suche, wohingegen $resultLimit und $timeout die Anzahl der Ergebnis-Einträge bzw. die maximalen Suchdauer einschränken. - * Zurückgegeben werden die Attribute, die im Array $attributes aufgeführt sind. Im Erfolgsfalle wird ein multidimensionales Array - * zurückgeliefert, im Fehlerfalle FALSE. Dann steht die Fehlermeldung in der Variablen $ldapError. + * Durchsucht den LDAP-Server vom Punkt $base ab nach Eintr�gen, die $filter entsprechen. Falls in $sort ein Feldname angegeben + * wurde, so wird danach sortiert. (ACHTUNG: die Funktion ldap_sort() ist nicht dokumentiert! Ich wei� nicht ob sie Sortierung + * nach mehreren Feldern zul�sst und wie sie sich verh�lt, wenn zu einem Attribut mehrere Werte existieren.) $mode definiert die + * Art der Suche, wohingegen $resultLimit und $timeout die Anzahl der Ergebnis-Eintr�ge bzw. die maximalen Suchdauer einschr�nken. + * Zur�ckgegeben werden die Attribute, die im Array $attributes aufgef�hrt sind. Im Erfolgsfalle wird ein multidimensionales Array + * zur�ckgeliefert, im Fehlerfalle FALSE. Dann steht die Fehlermeldung in der Variablen $ldapError. * * @param string $base die DN, das Verzeichnis, in dem die Suche startet * @@ -148,16 +148,16 @@ function rzLdapConnect($userRdn = "", $userPwd = "") { * * @param array attributes die Attributnamen, deren Werte im Ergebnis enthalten sein sollen. * - * @param string $sort Sortiert die Ergebnis-Einträge nach dem angegebenen Feldnamen (undokumentiert! s.o.) + * @param string $sort Sortiert die Ergebnis-Eintr�ge nach dem angegebenen Feldnamen (undokumentiert! s.o.) * - * @param string $mode Der Modus: "one" liefert einen Eintrag, "list" alle Einträge des Verzeichnisses und "sub" - * schließt alle Untervezeichnisse mit ein. + * @param string $mode Der Modus: "one" liefert einen Eintrag, "list" alle Eintr�ge des Verzeichnisses und "sub" + * schlie�t alle Untervezeichnisse mit ein. * - * @param int $resultLimit die maximale Anzahl zurückgegebener Einträge + * @param int $resultLimit die maximale Anzahl zur�ckgegebener Eintr�ge * * @param int $timeout die maximale Suchzeit, bevor der LDAP-Server abbrechen soll * - * @return mixed multidimensionales array mit den Einträgen im Erfolgsfall, FALSE wenn ein Fehler auftrat + * @return mixed multidimensionales array mit den Eintr�gen im Erfolgsfall, FALSE wenn ein Fehler auftrat * * @see ldap_read() * @see ldap_list() @@ -201,8 +201,8 @@ function uniLdapSearch($ds, $base, $filter, $attributes, $sort, $mode, $resultLi return false; } } else { - # Kein gültiger Modus angegeben. - $ldapError .= "Es wurde kein gültiger Modus angegeben."; + # Kein g�ltiger Modus angegeben. + $ldapError .= "Es wurde kein g�ltiger Modus angegeben."; return false; } if($abfrage && ($entries = ldap_get_entries($ds, $resource))) { @@ -218,11 +218,11 @@ function uniLdapSearch($ds, $base, $filter, $attributes, $sort, $mode, $resultLi /** * uniLdapAdd($ds, $dn, $daten, [$objectclass]) * -* Fügt ein neues Objekt in die LDAP-Datenbank ein. +* F�gt ein neues Objekt in die LDAP-Datenbank ein. * * @param resource $ds Datenbankhandler * @param string $dn Distinguished Name des neuen Eintrages -* @param array $daten Assoziatives Array mit den gewünschten Attributen +* @param array $daten Assoziatives Array mit den gew�nschten Attributen * @param string $objectclass Objektklasse des neuen Eintrages (Standard = "") * * @return boolean TRUE wenn Eintrag erfolgreich, FALSE wenn ein Fehler aufgetreten ist. @@ -245,22 +245,22 @@ function uniLdapAdd($ds, $dn, $daten, $objectclass = "") { /** * uniLdapModify($ds, $dn, $daten_alt, $daten_neu, [$i]) * -* Universalfunktion zum Ändern von Attributen und Werten. -* Bei Änderungsskripten muss zuerst ein Formular mit den alten Daten gefüllt werden. Die hierfür -* durchgeführte Suche wird in einem unbehandelten Array in der SESSION gespeichert und wieder -* ausgelesen, sobald die Änderungen gespeichert werden sollen. Es wird anschließend an diese Funktion -* (als $daten_alt)gegeben, die das Array mit ldapArraySauber von allen unnötigen Einträgen befreit. -* $daten_alt entspricht dann strukturell dem POST-Array des Änderungsformulars ($daten_neu). -* Letzteres wird nun durch laufen, alle Einträge werden mit ihrer Entsprechnung aus $daten_alt verglichen -* und ggf. werden dann Attribute geändert, gelöscht oder hinzugefügt. +* Universalfunktion zum �ndern von Attributen und Werten. +* Bei �nderungsskripten muss zuerst ein Formular mit den alten Daten gef�llt werden. Die hierf�r +* durchgef�hrte Suche wird in einem unbehandelten Array in der SESSION gespeichert und wieder +* ausgelesen, sobald die �nderungen gespeichert werden sollen. Es wird anschlie�end an diese Funktion +* (als $daten_alt)gegeben, die das Array mit ldapArraySauber von allen unn�tigen Eintr�gen befreit. +* $daten_alt entspricht dann strukturell dem POST-Array des �nderungsformulars ($daten_neu). +* Letzteres wird nun durch laufen, alle Eintr�ge werden mit ihrer Entsprechnung aus $daten_alt verglichen +* und ggf. werden dann Attribute ge�ndert, gel�scht oder hinzugef�gt. * * @param resource $ds Datenbankhandler * @param string $dn Distinguished Name des Eintrages -* @param array $daten_alt Dreidimensionales mixed Array der Form $array[int][string][int], so wie es von uniLdapSearch zurückgeliefert wird. +* @param array $daten_alt Dreidimensionales mixed Array der Form $array[int][string][int], so wie es von uniLdapSearch zur�ckgeliefert wird. * @param array $daten_neu Zweidimensionales mixed Array der Form $array[string][int], so wie ein Formular in $_POST gespeichert ist. * @param int $i Gibt an, welcher Eintrag der ersten Dimension von $daten_alt verwendet werden soll. (Standard: $i=0) * -* @return boolean TRUE wenn Änderung erfolgreich, FALSE wenn ein Fehler aufgetreten ist. +* @return boolean TRUE wenn �nderung erfolgreich, FALSE wenn ein Fehler aufgetreten ist. * * @see ldap_mod_replace() * @see ldap_mod_add() @@ -279,16 +279,16 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { if(!(is_array($value_neu))) { # Wenn $value_neu ein Skalar ist... # (d.h., das Attribut $key darf nur einen Wert annehmen) - $value_neu = htmlentities(str_replace(chr(160),"",trim($value_neu))); // ungewollte Leerzeichen und löschen + $value_neu = htmlentities(str_replace(chr(160),"",trim($value_neu))); // ungewollte Leerzeichen und l�schen if (isset($daten_alt[$key])) { - $daten_alt[$key] = str_replace(chr(160),"",trim($daten_alt[$key])); // ungewollte Leerzeichen und löschen + $daten_alt[$key] = str_replace(chr(160),"",trim($daten_alt[$key])); // ungewollte Leerzeichen und l�schen } else { $daten_alt[$key] = ""; } if($daten_alt[$key] == "" && $value_neu != "") { # FALL 1: # Alter Wert ist leer, neuer Wert ist nicht leer. - # Füge neues Attribut hinzu. + # F�ge neues Attribut hinzu. if(ldap_mod_add($ds, $dn, array($key => $value_neu))) { $meldung .= "Add successfull: ".$key." -> ".$value_neu."<br>"; } else { @@ -298,7 +298,7 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { } else if($daten_alt[$key] != "" && $value_neu == "") { # FALL 2: # Alter Wert ist nicht leer, neuer Wert ist leer. - # Lösche Attribut. + # L�sche Attribut. if(ldap_mod_del($ds, $dn, array($key => $daten_alt[$key]))) { $meldung .= "Delete successfull: ".$key." -> ".$daten_alt[$key]."<br>"; } else { @@ -308,7 +308,7 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { } else if($daten_alt[$key] != "" && $value_neu != "" && $daten_alt[$key] != $value_neu) { # FALL 3: # Alter und neuer Wert sind nicht leer und beide sind ungleich. - # Ändere das Attribut. Der bisherige Wert wird überschrieben. + # �ndere das Attribut. Der bisherige Wert wird �berschrieben. if(ldap_mod_replace($ds, $dn, array($key => $value_neu))) { $meldung .= "Replace successfull: ".$key." -> ".$value_neu."<br>"; } else { @@ -316,7 +316,7 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { } } else { - # In allen anderen Fällen ist keine Änderung nötig + # In allen anderen F�llen ist keine �nderung n�tig } } else { # Wenn $value_neu ein Array ist... @@ -326,7 +326,7 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { $value_alt = numArraySauber($daten_alt[$key]); foreach($value_alt as $item) { #$item = htmlentities($item); - # Lösche alle alten Werte des Attributes $key. + # L�sche alle alten Werte des Attributes $key. if(ldap_mod_del($ds, $dn, array($key => $item))) { $meldung .= "Delete successfull: ".$key." -> ".$item."<br>"; } else { @@ -336,7 +336,7 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { } foreach($value_neu as $item) { $item = htmlentities($item); - # Füge alle neuen Werte des Attributes $key ein. + # F�ge alle neuen Werte des Attributes $key ein. if(ldap_mod_add($ds, $dn, array($key => $item))) { $meldung .= "Add successfull: ".$key." -> ".$item."<br>"; } else { @@ -355,36 +355,36 @@ function uniLdapModify($ds, $dn, $daten_alt, $daten_neu, $i = 0) { } /** -* uniLdapDelete löscht beliebige Einträge mit dessen Subtree aus der Datenbank. -* Dabei wird der wird der Baum ab dem Eintrag $dn zu allen Blättern durchlaufen (Es -* können nur Blätter gelöscht werden!!) und die Einträge von hinten her bis einschließlich -* $dn gelöscht +* uniLdapDelete l�scht beliebige Eintr�ge mit dessen Subtree aus der Datenbank. +* Dabei wird der wird der Baum ab dem Eintrag $dn zu allen Bl�ttern durchlaufen (Es +* k�nnen nur Bl�tter gel�scht werden!!) und die Eintr�ge von hinten her bis einschlie�lich +* $dn gel�scht * * @param resource ds LDAP Directory Handle * @param string dn Distiguished Name * * @return boolean * -* @author Daniel Höfler +* @author Daniel H�fler */ function uniLdapDelete($ds, $dn) { - # Überprüfung, ob zu löschender Eintrag vorhanden ist + # �berpr�fung, ob zu l�schender Eintrag vorhanden ist if(!uniLdapSearch($ds, $dn, "objectclass=*", array("*"), "", "one", 0, 0)) { - $ldapError .= "Löschen fehlgeschlagen: Eintrag nicht gefunden".ldap_error($ds)."<br>\n"; + $ldapError .= "L�schen fehlgeschlagen: Eintrag nicht gefunden".ldap_error($ds)."<br>\n"; return false; } # Auslesen der Daten unterhalb von $dn $daten = uniLdapSearch($ds, $dn, "objectclass=*", array("*"), "", "list", 0, 0); - # for-Schleife wird nur ausgeführt, falls sich unterhalb von $dn Einträge befinden + # for-Schleife wird nur ausgef�hrt, falls sich unterhalb von $dn Eintr�ge befinden for($i = 0; $i < $daten['count']; $i++){ uniLdapDelete($ds, $daten[$i]['dn']); } - # löschen der Blätter + # l�schen der Bl�tter if(ldap_delete($ds, $dn)) { return true; } else { - $ldapError .= "Löschen fehlgeschlagen".ldap_error($ds)."<br>\n"; + $ldapError .= "L�schen fehlgeschlagen".ldap_error($ds)."<br>\n"; return false; } } @@ -398,17 +398,17 @@ function uniLdapDelete($ds, $dn) { # Weitere LDAP Funktionen # -# LDAP Funktionen um alle Objekte der AU eines bestimmten Typs mit gewählten Attributen zu holen +# LDAP Funktionen um alle Objekte der AU eines bestimmten Typs mit gew�hlten Attributen zu holen # -function get_hosts($auDN,$attributes) +function get_hosts($auDN,$attributes,$sortattr) { global $ds, $suffix, $ldapError; - #if ( $sortattr == ""){ - # $sortattr = "hostname"; - #} + if ( $sortattr == ""){ + $sortattr = "hostname"; + } - if(!($result = uniLdapSearch($ds, "cn=computers,".$auDN, "(objectclass=Host)", $attributes, "hostname", "sub", 0, 0))) { + if(!($result = uniLdapSearch($ds, "cn=computers,".$auDN, "(objectclass=Host)", $attributes, $sortattr, "sub", 0, 0))) { # redirect(5, "", $ldapError, FALSE); echo "no search"; die; @@ -533,6 +533,39 @@ function get_pxeconfigs($baseDN,$attributes) } } +function get_pxeconfigs2($clientDN,$attributes) +{ + global $auDN, $ds, $suffix, $ldapError; + + if ($clientDN == ""){ + $filter = "(objectclass=PxeConfig)"; + }else{ + $filter = "(&(objectclass=PxeConfig)(pxeclientdn=$clientDN))"; + } + + if(!($result = uniLdapSearch($ds, "cn=pxe,".$auDN, $filter, $attributes, "", "list", 0, 0))) { + # redirect(5, "", $ldapError, FALSE); + echo "no search"; + die; + } + elseif(count($result) == 0){return $result;} + else{ + $result = ldapArraySauber($result); + # print_r($result);printf("<br><br>"); + $pxe_array = array(); + foreach ($result as $item){ + foreach ($attributes as $att){ + $atts[$att] = $item[$att]; + } + $atts['baseDN'] = $baseDN; + $atts['auDN'] = $auDN; + $pxe_array[] = $atts; + } + if($attributes != false ){return $pxe_array;} + else{return $result;} + } +} + function get_menuentries($baseDN,$attributes) { global $ds, $suffix, $ldapError; @@ -712,6 +745,31 @@ function get_childau($auDN,$attributes) } } +function get_all_aus($attributes) +{ + global $ds, $auDN, $suffix, $ldapError; + + if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(objectclass=AdministrativeUnit)", $attributes, "ou", "sub", 0, 0))) { + # redirect(5, "", $ldapError, FALSE); + echo "no search"; + die; + } + else { + $result = ldapArraySauber($result); + + $childau_array = array(); + foreach ($result as $item){ + foreach ($attributes as $att){ + $atts[$att] = $item[$att]; + } + $atts['auDN'] = $auDN; + $childau_array[] = $atts; + } + if($attributes != false ){return $childau_array;} + else{return $result;} + } +} + function get_au_data($auDN,$attributes) { global $ds, $suffix, $ldapError; diff --git a/ldap-site-mngmt/webinterface/lib/rbs_management_functions.php b/ldap-site-mngmt/webinterface/lib/rbs_management_functions.php index 71ea576f..2e7d5348 100644 --- a/ldap-site-mngmt/webinterface/lib/rbs_management_functions.php +++ b/ldap-site-mngmt/webinterface/lib/rbs_management_functions.php @@ -200,7 +200,7 @@ function adjust_dhcpnextserver($tftpIP, $rbsDN){ global $ds, $suffix, $ldapError; - if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(objectclass=Host)(hlprbservice=$rbsDN))", array("dn"), "dn", "sub", 0, 0))) { + if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(|(objectclass=Host)(objectclass=dhcpPool))(hlprbservice=$rbsDN))", array("dn"), "dn", "sub", 0, 0))) { # redirect(5, "", $ldapError, FALSE); echo "no search"; die; @@ -436,7 +436,7 @@ function add_pxe($pxeDN,$pxecn,$rbsDN,$pxetimerange,$pxeattribs,$filenames,$conf } } } - #print_r($pxeentry); echo "<br>"; + print_r($pxeentry); echo "<br>"; print_r($pxeDN); echo "<br>"; if (ldap_add($ds,$pxeDN,$pxeentry)){ return 1; diff --git a/ldap-site-mngmt/webinterface/login_form.inc.html b/ldap-site-mngmt/webinterface/login_form.inc.html index 13ecd9c7..f9e32891 100644 --- a/ldap-site-mngmt/webinterface/login_form.inc.html +++ b/ldap-site-mngmt/webinterface/login_form.inc.html @@ -1,18 +1,29 @@ -<!-- Author: Timothy Burk --> -<form action="{PFAD}login_sicher.php" method="post"> +<form name="loginform" action="{PFAD}login_sicher.php" method="post"> <table border="0" cellspacing="0" cellpadding="2"> - <tr> + <!--<tr> <td colspan="2"><p><b>Benutzerlogin:</b></p></td> + </tr>--> + <tr> + <td colspan="3"> </td> </tr> <tr> - <td><p class="small_loginform_text">User-Id:</p></td> - <td><input type="Text" name="uid" size="15" class="small_loginform_field"> </td> + <td><p class="small_loginform_text"><b>UserID:</b></p></td> + <td><input type="Text" name="uid" size="15" class="small_loginform_field" select> </td> <td><p class="small_loginform_text"> </p></td> </tr> <tr> - <td><p class="small_loginform_text">Passwort:</p></td> + <td><p class="small_loginform_text"><b>Passwort:</b></p></td> <td><input type="Password" name="userPassword" size="15" class="small_loginform_field"> </td> - <td><input type="Submit" name="Login" value="Login" class="small_loginform_button"></td> + <td><p class="small_loginform_text"> </p></td> + </tr> + <tr> + <td><p class="small_loginform_text"> </p></td> + <td align="right"><input type="Submit" name="Login" value="Anmelden" class="small_loginform_button"></td> + <td><p class="small_loginform_text"> </p></td> </tr> </table> -</form>
\ No newline at end of file +</form> + +<script type="text/javascript"> + document.loginform.uid.focus(); +</script>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/login_sicher.php b/ldap-site-mngmt/webinterface/login_sicher.php index 93676837..307b7b92 100644 --- a/ldap-site-mngmt/webinterface/login_sicher.php +++ b/ldap-site-mngmt/webinterface/login_sicher.php @@ -1,11 +1,11 @@ <?php /** -* login_sicher.php führt einen Bind mit den eingegebenen Benutzerdaten durch. -* Dabei erfolgt die Authetifizierung entsprechend der Ausführung bei der Präsentation des Projektes +* login_sicher.php f�hrt einen Bind mit den eingegebenen Benutzerdaten durch. +* Dabei erfolgt die Authetifizierung entsprechend der Ausf�hrung bei der Pr�sentation des Projektes * am RZ-LDAP. Das Passwort des Users wird aber nun nicht mehr auf dem Gruppe1 LDAP gespeichert. Dort * legt das Skript ein Standardpasswort an. -* Im Fehlerfall wird eine Meldung ausgegeben und anschließend auf index.php weitergeleitet. -* Bei erfolgreichem nicht anonymem Bind werden die Benutzerrechte ausgelesen und davon abhängig +* Im Fehlerfall wird eine Meldung ausgegeben und anschlie�end auf index.php weitergeleitet. +* Bei erfolgreichem nicht anonymem Bind werden die Benutzerrechte ausgelesen und davon abh�ngig * die entsprechende Startseite aufgerufen. dn, uid, userPassword, cn und die Rechte werden in * einer Session gespeichert. * @@ -37,16 +37,16 @@ checkLogin($uid,$userPassword); * * Wenn RZ-LDAP-Login UND Gruppe1-LDAP-Login erfolgreich sind, dann ist der User * bereits im Gruppe1-LDAP eingetragen. -* -> Mache Datenabgleich und anschließenden Login am Gruppe1-LDAP +* -> Mache Datenabgleich und anschlie�enden Login am Gruppe1-LDAP * Wenn RZ-LDAP-Login erfolgreich, Gruppe1-LDAP-Login jedoch nicht erfolgreich ist, -* dann unterscheide zwischen zwei Möglichkeiten: +* dann unterscheide zwischen zwei M�glichkeiten: * 1. Der User ist im Gruppe1-LDAP nicht angelegt, -* 2. Der User ist im Gruppe1-LDAP zwar angelegt, aber das Passwort wurde auf dem RZ-LDAP inzwischen geändert. +* 2. Der User ist im Gruppe1-LDAP zwar angelegt, aber das Passwort wurde auf dem RZ-LDAP inzwischen ge�ndert. * -> Login als Dummy und Check, ob UID vorhanden * Wenn RZ-LDAP-Login nicht erfolgreich, Gruppe1-LDAP-Login jedoch erfolgreich ist, * dann ist der User auf dem RZ-LDAP nicht gespeichert. * -> Login am Gruppe1-LDAP -* In anderen Fällen waren die Zugangsdaten nicht korrekt. +* In anderen F�llen waren die Zugangsdaten nicht korrekt. * -> Redirect auf index.php. * * Schema siehe auch /home/gruppe1/Praesentation/Login und Personen.pps @@ -63,14 +63,14 @@ checkLogin($uid,$userPassword); */ function checkLogin($uid = "", $userPassword = "") { global $userDn_rz, $userDN, $suffix, $suffix_rz, $ldapError, $standardPassword; - # Abfrage, ob das Loginformular Daten enthält + # Abfrage, ob das Loginformular Daten enth�lt if(!(($uid == "") || ($userPassword == ""))) { # UID und Passwort wurden eingegeben - # Fallunterscheidung welche Logins möglich sind + # Fallunterscheidung welche Logins m�glich sind /* if(($ds_rz = rzLdapConnect($uid,$userPassword)) && ($ds = uniLdapConnect($uid, $standardPassword))) { # Wenn RZ-LDAP-Login UND Gruppe1-LDAP-Login erfolgreich sind, dann ist der User # bereits im Gruppe1-LDAP eingetragen. - # -> Mache Datenabgleich und anschließenden Login am Gruppe1-LDAP + # -> Mache Datenabgleich und anschlie�enden Login am Gruppe1-LDAP datenabgleich($uid, $userPassword, $ds_rz, $ds); ldap_unbind($ds); ldap_unbind($ds_rz); @@ -78,10 +78,10 @@ function checkLogin($uid = "", $userPassword = "") { userLogin($uid, $userPassword); } else if(($ds_rz = rzLdapConnect($uid,$userPassword)) && !($ds = uniLdapConnect($uid, $standardPassword))) { # Wenn RZ-LDAP-Login erfolgreich, Gruppe1-LDAP-Login jedoch nicht erfolgreich ist, - # dann unterscheide zwischen zwei Möglichkeiten: + # dann unterscheide zwischen zwei M�glichkeiten: # 1. Der User ist im Gruppe1-LDAP nicht angelegt, # 2. Der User ist im Gruppe1-LDAP zwar angelegt, aber das Passwort wurde auf dem RZ-LDAP - # inzwischen geändert. + # inzwischen ge�ndert. # -> Login als Dummy und Check, ob UID vorhanden if(dummyUidCheck($uid)) { #changePassword($uid,$userPassword); @@ -99,23 +99,23 @@ function checkLogin($uid = "", $userPassword = "") { ldap_unbind($ds); userLogin($uid, $userPassword); } else { - # In anderen Fällen waren die Zugangsdaten nicht korrekt. + # In anderen F�llen waren die Zugangsdaten nicht korrekt. # -> Redirect auf index.php. - redirect(5, "index.php", "Bitte geben Sie korrekte Zugangsdaten ein.<br>".$ldapError, FALSE); + redirect(3, "index.php", "<h3>Bitte geben Sie korrekte Zugangsdaten ein.<h3>".$ldapError, FALSE); die; } } else { # UID und/oder Passwort wurden NICHT eingegeben - redirect(5, "index.php", "Bitte geben Sie User-Id und Passwort ein.<br>".$ldapError, FALSE); + redirect(3, "index.php", "<h3>Bitte geben Sie User-Id und Passwort ein.</h3>".$ldapError, FALSE); die; } } /** -* dummyUidCheck($uid) - Überprüft, ob UID im Gruppe1-LPAD vorhanden ist. +* dummyUidCheck($uid) - �berpr�ft, ob UID im Gruppe1-LPAD vorhanden ist. * -* Über den Dummyuser wird eine Verbindung zum Gruppe1-LDAP aufgebaut und die angegebene +* �ber den Dummyuser wird eine Verbindung zum Gruppe1-LDAP aufgebaut und die angegebene * UID wird gesucht. * * @param string UID @@ -131,7 +131,7 @@ function dummyUidCheck($uid) { redirect(5, "index.php", "Dummy-Login fehlgeschlagen!<br>".$ldapError, FALSE); die; } - # Im nächsten Schritt wird überprüft, ob ein Eintrag mit der UID $uid schon vorliegt: + # Im n�chsten Schritt wird �berpr�ft, ob ein Eintrag mit der UID $uid schon vorliegt: if(!($person_daten = uniLdapSearch($ds_dummy, "ou=people,".$suffix, "uid=$uid", array("*"), "", "list", 0, 0))) { redirect(5, "index.php", $ldapError, FALSE); die; @@ -149,8 +149,8 @@ function dummyUidCheck($uid) { /** * userAnlegen($uid,$userPassword,$ds_rz) * -* Legt mithilfe des Dummyusers einen noch nicht bei uns geführten User im Gruppe1-LDAP -* mit den Daten des Rechenzentrums an. Das Passwort ist dabei für alle User in der config.inc.php festgelegt. +* Legt mithilfe des Dummyusers einen noch nicht bei uns gef�hrten User im Gruppe1-LDAP +* mit den Daten des Rechenzentrums an. Das Passwort ist dabei f�r alle User in der config.inc.php festgelegt. * * @param string UID * @param string Password @@ -165,7 +165,7 @@ function userAnlegen($uid,$userPassword,$ds_rz) { redirect(5, "index.php", "Dummy-Login fehlgeschlagen!<br>".$ldapError, FALSE); die; } - # Im nächsten Schritt wird überprüft, ob ein Eintrag mit der UID $uid schon vorliegt: + # Im n�chsten Schritt wird �berpr�ft, ob ein Eintrag mit der UID $uid schon vorliegt: $ruffelder = array("uid", "sn", "givenname", "uidnumber", "gidnumber", "homedirectory", "loginshell", "rufnutzernummer", "rufanrede", "rufeinrichtung", "rufmatnr", "rufaccounttype", "ruffakultaet", "mail", "rufdienst"); if(!($person_daten = uniLdapSearch($ds_rz, "ou=people,".$suffix_rz, "uid=$uid", $ruffelder, "", "list", 0, 0))) { @@ -219,7 +219,7 @@ function userAnlegen($uid,$userPassword,$ds_rz) { } /** -* datenabgleich($uid, $userPassword, $ds_rz, $ds) - Überschreibt bei jedem Login die Daten des +* datenabgleich($uid, $userPassword, $ds_rz, $ds) - �berschreibt bei jedem Login die Daten des * Gruppe1-LDAP mit denen des RZ-LDAP mithilfe des Dummyusers. * * @param string UID @@ -236,7 +236,7 @@ function datenabgleich($uid, $userPassword, $ds_rz, $ds) { redirect(5, "index.php", "Dummy-Login fehlgeschlagen!<br>".$ldapError, FALSE); die; } - # Im nächsten Schritt wird überprüft, ob ein Eintrag mit der UID $uid schon vorliegt: + # Im n�chsten Schritt wird �berpr�ft, ob ein Eintrag mit der UID $uid schon vorliegt: $ruffelder = array("uid", "sn", "givenname", "uidnumber", "gidnumber", "homedirectory", "loginshell", "rufnutzernummer", "rufanrede", "rufeinrichtung", "rufmatnr", "rufaccounttype", "ruffakultaet", "mail", "rufdienst"); if(!($person_daten = uniLdapSearch($ds_rz, "ou=people,".$suffix_rz, "uid=$uid", $ruffelder, "", "list", 0, 0))) { @@ -298,12 +298,12 @@ function datenabgleich($uid, $userPassword, $ds_rz, $ds) { } /** -* userLogin($uid, $userPassword) - Führt den Login am Gruppe1-LDAP durch. +* userLogin($uid, $userPassword) - F�hrt den Login am Gruppe1-LDAP durch. * * Nach erfolgreicher Identifikation und ggf. neuem Anlegen oder Datenabgleich wird -* mit userLogin() der Bind am Gruppe1-LDAP durchgeführt. +* mit userLogin() der Bind am Gruppe1-LDAP durchgef�hrt. * Die Rechte und der CN des Users werden ausgelesen und in der Session gespeichert. -* Anschließend leitet das Skript auf die Startseite der Verwaltung (person_daten_show.php) weiter. +* Anschlie�end leitet das Skript auf die Startseite der Verwaltung (person_daten_show.php) weiter. * * @param string UID * @param string Password @@ -333,20 +333,22 @@ function userLogin($uid, $userPassword) { $_SESSION['dn'] = $userDN; $_SESSION['cn'] = $cn; $_SESSION['audn'] = ""; + $_SESSION['status'] = "in"; + $_SESSION['error']; # LDAP-Bind aufheben ldap_unbind($ds); $mesg = "<html> <head> - <title>AU Management</title> + <title>AdminUnit Management</title> <link rel='stylesheet' href='styles.css' type='text/css'> </head> <body> - <table border='0' cellpadding='30' cellspacing='0'> - <tr><td> - Bitte haben Sie einen Moment Geduld, die Seite wird geladen... <br> - Falls nicht, klicken Sie bitte <a href='start.php'>hier</a>. + <table border='0' cellpadding='200' cellspacing='0' width='100%'> + <tr valign='middle'><td align='center'> + <h3>Bitte einen Moment Geduld, die Seite wird geladen ... <br> + Falls nicht, klicken Sie bitte <a href='start.php'>hier</a>.<h3> </td></tr> </table> </body> @@ -355,7 +357,7 @@ function userLogin($uid, $userPassword) { redirect(0, "start.php", $mesg, TRUE); - # nichtmehr benötigte CSV-Dateien im tmp-Verzeichnis löschen + # nichtmehr ben�tigte CSV-Dateien im tmp-Verzeichnis l�schen # listen_sauber(); } diff --git a/ldap-site-mngmt/webinterface/logout_form.inc.dwt b/ldap-site-mngmt/webinterface/logout_form.inc.dwt index 96d4a552..0c6ce597 100644 --- a/ldap-site-mngmt/webinterface/logout_form.inc.dwt +++ b/ldap-site-mngmt/webinterface/logout_form.inc.dwt @@ -1,9 +1,9 @@ <form action="{PFAD}index.php" method="post">
<table border="0" cellspacing="0" cellpadding="3">
<tr valign='top' align='right'>
- <td><p class="small_loginform_text">Eingeloggt als: </td>
+ <td><p class="tiny_loginform_text">Eingeloggt als: </td>
<td><b> {USERCN} </b></td>
- <td><input type="Submit" name="Logout" value="Logout" class="small_loginform_button"></p></td>
+ <td><input type="Submit" name="Logout" value="Logout" class="tiny_loginform_button"></p></td>
</tr>
</table>
</form>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/rbs/rbs.dwt b/ldap-site-mngmt/webinterface/rbs/rbs.dwt index ec6d0cbc..31f62a70 100644 --- a/ldap-site-mngmt/webinterface/rbs/rbs.dwt +++ b/ldap-site-mngmt/webinterface/rbs/rbs.dwt @@ -5,18 +5,18 @@ <link rel='stylesheet' href='../styles.css' type='text/css'></head> <body> -<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'> +<table cellpadding='0' cellspacing='0' border='0' width='100%' style='background-color: #F0F0F0;border-color: #505050; border-style: solid; border-width: 0 0 1 0;'> <tr> - <td width='35%'> + <td width='30%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> - <td width='40%'> + <td width='45%'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top' align='left'> <td> @@ -36,16 +36,13 @@ </table> </td> </tr> + <tr> + <td colspan='3'>{MAINMENU}</td> + </tr> </table> -<table cellpadding='5' cellspacing='0' border='0' width='95%' height='7%'> -<tr> - <td>{MAINMENU}</td> -</tr> -</table> - -<hr align='center' width='98%' noshade> - +<!--<hr align='center' width='98%' noshade>--> +<br> <table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'> diff --git a/ldap-site-mngmt/webinterface/roles/roles.dwt b/ldap-site-mngmt/webinterface/roles/roles.dwt index 8e775327..48e8fe14 100644 --- a/ldap-site-mngmt/webinterface/roles/roles.dwt +++ b/ldap-site-mngmt/webinterface/roles/roles.dwt @@ -11,7 +11,7 @@ <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr valign='top'> <td width='1'></td> - <td><h2>Rechner und IP Management</h2></td> + <td><h2>Client / IP Management</h2></td> </tr> </table> </td> diff --git a/ldap-site-mngmt/webinterface/standard_footer.inc.php b/ldap-site-mngmt/webinterface/standard_footer.inc.php new file mode 100644 index 00000000..afaf5a35 --- /dev/null +++ b/ldap-site-mngmt/webinterface/standard_footer.inc.php @@ -0,0 +1,19 @@ +<? + +echo " +</td> + <td width='2%'></td> + </tr> +</table> + +</body> + +</html> +"; + +echo "<br /><b>php_errormsg:</b> $php_errormsg"; +#$_SESSION['error'] .= $php_errormsg; + +#echo "Errors:<br>$_SESSION['error']"; + +?>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/standard_header.inc.php b/ldap-site-mngmt/webinterface/standard_header.inc.php index bf975c90..21483eee 100644 --- a/ldap-site-mngmt/webinterface/standard_header.inc.php +++ b/ldap-site-mngmt/webinterface/standard_header.inc.php @@ -2,6 +2,7 @@ session_cache_expire(30); session_start(); + include('lib/config.inc.php'); include('lib/ldap.inc.php'); include('lib/ldap2.inc.php'); @@ -14,6 +15,21 @@ include('lib/dhcp_management_functions.php'); include('lib/rbs_management_functions.php'); include("class.FastTemplate.php"); +//print_r($_SESSION['status']); +if ( !isset($_SESSION['status']) ){ + redirect(0,"../index.php","",$addSessionId = FALSE); + exit; +} +if ( $_SESSION['status'] != "in" ){ + //$_SESSION['status'] != "out"; + redirect(0,"../index.php","",$addSessionId = FALSE); + exit; +} + + // Fehlerausgabe im Browser anschalten +ini_set('display_errors', 0); +// nur Laufzeitfehler ausgeben +error_reporting(E_ALL ^ E_NOTICE | E_STRICT); $uid = $_SESSION['uid']; $userPassword = $_SESSION['userPassword']; @@ -28,13 +44,13 @@ $rollen = $_SESSION['rollen']; if (!($ds = uniLdapConnect($uid,$userPassword))){ echo "<html> <head> - <title>Rechner und IP Management</title> + <title>Zentrales Rechner / IP Management</title> <link rel='stylesheet' href='../styles.css' type='text/css'> </head> <body> <table border='0' cellpadding='30' cellspacing='0'> - <tr><td> - Es konnte keine Verbindung zum LDAP Server hergestellt werden! + <tr valign='middle'><td align='center'> + <h3>Es konnte keine Verbindung zum LDAP Server hergestellt werden!</h3> </td></tr></table></body> </html> "; @@ -60,7 +76,7 @@ if ($auDN != ""){ if ($expAuDn[1] == "ou=RIPM"){ $domDN = "ou=DNS,".$suffix; } - else{$domDN = $domain_data[0]['dn']; echo "<br>";} + else{$domDN = $domain_data[0]['dn']; } $domprefix = str_replace('.'.$domsuffix,'',$assocdom); # print_r($domprefix); diff --git a/ldap-site-mngmt/webinterface/start.dwt b/ldap-site-mngmt/webinterface/start.dwt index db7cf92c..526d8ce4 100644 --- a/ldap-site-mngmt/webinterface/start.dwt +++ b/ldap-site-mngmt/webinterface/start.dwt @@ -1,16 +1,20 @@ +<br><br> +<hr align='center' size='3' width='98%' noshade> -<hr align='center' width='98%' noshade> - -<table cellpadding='5' cellspacing='0' border='0' width='100%' height='20%'> +<table cellpadding='5' cellspacing='0' border='0' width='100%' height='30%'> <tr valign='middle' height='100%'> <td width='100%' align='center'> <table cellpadding='5' cellspacing='0' border='0' width='100%'> <tr><td align='center'> - <h1>Rechner und IP Managment</h1> + <h1>Zentrales Client / IP Management</h1> + <h3> + <code class='font_object'><br> Registrierung / Administration von Rechnern in den zentralen RZ Diensten <br> + <font size=+3> DHCP, Remote Boot (PXE/TFTP) </font></code> + </h3> </td></tr> </table> </td> @@ -18,13 +22,17 @@ </tr> </table> -<hr align='center' width='98%' noshade> - -<table cellpadding='5' cellspacing='0' border='0' width='100%' height='20%'> +<hr align='center' size='3' width='98%' noshade> - <tr valign='middle' height='100%'> +<table cellpadding='5' cellspacing='0' border='0' width='100%' height='48%'> + + + <tr valign='middle'> <td width='100%' align='center'> - <table cellpadding='5' cellspacing='0' border='0' width='100%'> + <table cellspacing='0' cellpadding='5' border='0' width='30%' style='border-color: #505050; border-style: solid; border-width: 2 2 2 2;'> + <tr height="50"><td align='center' style='border-color: #505050; border-style: solid; border-width: 0 0 2 0;background-color: #808080; color: white;'> + <font size="+2"> LOGIN - Client / IP Management </font> + </td></tr> <tr><td align='center'> {LOGIN} @@ -35,3 +43,15 @@ </tr> </table> + + + +<table cellpadding='5' cellspacing='0' border='0' width='100%' height='10%'> + <tr valign='bottom'> + <td><hr align='center' size='1' width='100%' noshade></td> + </tr> + <tr valign='top'> + <td align='right'> Rechenzentrum Universität Freiburg + </td></tr> + </tr> +</table>
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/start.php b/ldap-site-mngmt/webinterface/start.php index 413d1e4a..d0d34320 100644 --- a/ldap-site-mngmt/webinterface/start.php +++ b/ldap-site-mngmt/webinterface/start.php @@ -37,9 +37,10 @@ foreach ($roles as $item){ $expDN = explode(',',$auDN); $expOU = explode('=',$expDN[0]); $au = $expOU[1]; + $audata = get_au_data($auDN,array("cn","description")); - $template->assign(array( "MA" => "", "HA" => "", "DA" => "", "ZA" => "", "RA" => "")); - $template->assign(array( "AU" => $au, "AUDN" => $auDN, "ROLLEN" => implode('_',$item['role']))); + $template->assign(array( "CN" => "","MA" => "", "HA" => "", "DA" => "", "ZA" => "", "RA" => "")); + $template->assign(array( "AU" => $au, "AUDN" => $auDN, "CN" => $audata[0]['cn'], "ROLLEN" => implode('_',$item['role']))); $rollen = ""; foreach ($item['role'] as $role){ @@ -78,4 +79,5 @@ $template->parse("PAGE", "Vorlage"); # Fertige Seite an den Browser senden $template->FastPrint("PAGE"); + ?> diff --git a/ldap-site-mngmt/webinterface/styles.css b/ldap-site-mngmt/webinterface/styles.css index f2def7f0..aec22d79 100644 --- a/ldap-site-mngmt/webinterface/styles.css +++ b/ldap-site-mngmt/webinterface/styles.css @@ -20,7 +20,7 @@ a:active { text-decoration:underline; } body { - font-family: Arial; + font-family: helvetica, arial, sans-serif; font-size: 10pt; color: #000000; background-color: #FFFFFF; @@ -28,43 +28,43 @@ body { margin-left:0px; } h1 { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 25pt; font-weight: bold; color: #000000; } h2 { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 15pt; font-weight: bold; color: #000000; } h3 { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 12pt; font-weight: bold; color: #000000; } h4 { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 10pt; font-weight: bold; color: #000000; } .font_object { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-weight: bold; color: #505050; } .balken { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 12pt; font-weight: bold; color: #FFFFFF; background-color: #006BB6; } .balken_mit_pd { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 12pt; font-weight: bold; color: #FFFFFF; @@ -72,21 +72,39 @@ h4 { padding: 5; } .balken_kl { - font-family: Arial; + font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #FFFFFF; background-color: #006BB6; } .small_loginform_field { - font-family: Arial; - font-size: 8pt; + font-family: arial, helvetica, sans-serif; + font-size: 10pt; color: #000000; border-style: solid; border-width: 1px 1px; border-color: #000000; background-color: #C0C0C0; + padding: 3px; + margin: 3px; } .small_loginform_button { + font-family: arial, helvetica, sans-serif; + font-size: 10pt; + width: 80px; + color: #FFFFFF; + border-style: solid; + border-width: 1px 1px; + border-color: #000000; + background-color: #880000; + margin: 3px; +} +.small_loginform_text { + font-family: arial, helvetica, sans-serif; + font-size: 10pt; + color: #000000; +} +.tiny_loginform_button { font-family: Arial; font-size: 8pt; width: 60px; @@ -96,8 +114,8 @@ h4 { border-color: #000000; background-color: #880000; } -.small_loginform_text { - font-family: Arial; +.tiny_loginform_text { + font-family: arial, helvetica, sans-serif; font-size: 8pt; color: #000000; } @@ -183,6 +201,16 @@ h4 { padding-left: 5px; margin: 5px; } +.100_form_selectbox { + font-family: Arial; + font-size: 10pt; + border-style: solid; + border-width: 1px 1px; + border-color: #000000; + width: 100; + padding-left: 10px; + margin: 5px; +} .tiny_form_selectbox { font-family: Arial; font-size: 10pt; @@ -212,6 +240,16 @@ h4 { font-size: 10pt; color: #FFFFFF; } +.menue_schrift { + font-family: Arial; + font-size: 11pt; + color: #FFFFFF; +} +.submenue_schrift { + font-family: Arial; + font-size: 10pt; + color: #FFFFFF; +} .tabellenzeile_hell { background-color: #E7F5FE; } |