summaryrefslogtreecommitdiffstats
path: root/ldap-site-mngmt/webinterface/rbs
diff options
context:
space:
mode:
authorTarik Gasmi2007-05-14 10:03:48 +0200
committerTarik Gasmi2007-05-14 10:03:48 +0200
commit59cf91925ca8da43d2427331b23e4673b0e53095 (patch)
tree871f39414143192cb3e8bd6f4bd2b7462e7076b9 /ldap-site-mngmt/webinterface/rbs
parentSome webinterface data. (diff)
downloadcore-59cf91925ca8da43d2427331b23e4673b0e53095.tar.gz
core-59cf91925ca8da43d2427331b23e4673b0e53095.tar.xz
core-59cf91925ca8da43d2427331b23e4673b0e53095.zip
Other webinterface data.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1077 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'ldap-site-mngmt/webinterface/rbs')
-rw-r--r--ldap-site-mngmt/webinterface/rbs/delete_confirm.php90
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm.dwt129
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm.php110
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm_add.php68
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm_change.php210
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm_delete.php40
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm_overview.dwt29
-rw-r--r--ldap-site-mngmt/webinterface/rbs/gbm_overview.php56
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menu.dwt31
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuentry.dwt247
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuentry.php158
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuentry_add.php258
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuentry_change.php207
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuentry_delete.php41
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuposition_down.php41
-rw-r--r--ldap-site-mngmt/webinterface/rbs/menuposition_up.php39
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_gbm.dwt91
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_gbm.php66
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_menuentry.dwt188
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_menuentry.php166
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_pxe.dwt157
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_pxe.php95
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_rbservice.dwt117
-rw-r--r--ldap-site-mngmt/webinterface/rbs/new_rbservice.php107
-rw-r--r--ldap-site-mngmt/webinterface/rbs/no_rbservice.dwt22
-rw-r--r--ldap-site-mngmt/webinterface/rbs/no_rbservice.php32
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe.dwt453
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe.php221
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe_add.php118
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe_change.php434
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe_copy.php189
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe_delete.php42
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxe_wochenplan.php154
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxeconfig_default.dwt323
-rw-r--r--ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php77
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs.dwt79
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs.php30
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs_footer.inc.php18
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs_header.inc.php21
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs_menu.php215
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbs_start.dwt41
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbservice.dwt228
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbservice.php148
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbservice_add.php140
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbservice_change.php337
-rw-r--r--ldap-site-mngmt/webinterface/rbs/rbservice_delete.php41
46 files changed, 6104 insertions, 0 deletions
diff --git a/ldap-site-mngmt/webinterface/rbs/delete_confirm.php b/ldap-site-mngmt/webinterface/rbs/delete_confirm.php
new file mode 100644
index 00000000..11a04dfd
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/delete_confirm.php
@@ -0,0 +1,90 @@
+<?php
+include('../standard_header.inc.php');
+
+$dn = $_POST['dn'];
+$name = $_POST['name'];
+$delurl = $_POST['delurl'];
+$backurl = $_POST['backurl'];
+$successurl = $_POST['successurl'];
+
+$type = $_POST['type'];
+$pxedn = $_POST['pxedn'];
+
+echo "
+<html>
+<head>
+ <title>AU Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+ <tr>
+ <td>";
+
+
+if($type == "gbm"){
+ $gbmDN = $dn;
+ $attribs = array("dn");
+ if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(objectclass=MenuEntry)(genericmenuentrydn=$gbmDN))", $attribs, "dn", "sub", 0, 0))) {
+ # redirect(5, "", $ldapError, FALSE);
+ echo "no search";
+ die;
+ }
+ else{
+ $result = ldapArraySauber($result);
+ if (count($result) > 0){
+ echo "Folgende Men&uuml; Eintr&auml;ge sind davon betroffen: <br><br>";
+ foreach ($result as $item){
+ $exp = ldap_explode_dn($item['dn'], 1);
+ echo "Men&uuml; Eintrag <b>".$exp[0]."</b> in PXE Bootmen&uuml; <b>".$exp[1]."</b> &nbsp;&nbsp;[ Abteilung: ".$exp[4]." ]<br>";
+ }
+ }
+ else{
+ echo "Keine Men&uuml; Eintr&auml;ge davon betroffen!<br>";
+ }
+ }
+}
+
+if($type == "rbs"){
+ $rbsDN = $dn;
+ $attribs = array("dn");
+ if(!($result = uniLdapSearch($ds, "ou=RIPM,".$suffix, "(&(objectclass=PXEConfig)(rbservicedn=$rbsDN))", $attribs, "dn", "sub", 0, 0))) {
+ # redirect(5, "", $ldapError, FALSE);
+ echo "no search";
+ die;
+ }
+ else{
+ $result = ldapArraySauber($result);
+ if (count($result) > 0){
+ echo "Folgende PXE Boot Men&uuml;s sind davon betroffen: <br><br>";
+ foreach ($result as $item){
+ $exp = ldap_explode_dn($item['dn'], 1);
+ echo "PXE Boot Men&uuml; <b>".$exp[0]."</b> an Objekt <b>".$exp[1]."</b> &nbsp;&nbsp;[ Abteilung: ".$exp[3]." ]<br>";
+ }
+ }
+ else{
+ echo "Keine PXE Boot Men&uuml;s davon betroffen!<br>";
+ }
+ }
+}
+
+ echo "<br><br>
+ Wollen Sie das Objekt <b>".$name."</b> wirklich l&ouml;schen?<br><br>
+ <form action='".$delurl."' method='post'>
+ Falls ja:<br><br>
+ <input type='hidden' name='dn' value='".$dn."'>
+ <input type='hidden' name='name' value='".$name."'>
+ <input type='hidden' name='successurl' value='".$successurl."'>
+ <input type='hidden' name='pxedn' value='".$pxedn."'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'><br><br>
+ </form>
+ <form action='".$backurl."' method='post'>
+ Falls, nein:<br><br>
+ <input type='Submit' name='apply' value='zur&uuml;ck' class='small_loginform_button'>
+ </form>
+ </td>
+ </tr>
+</table>
+</body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.dwt b/ldap-site-mngmt/webinterface/rbs/gbm.dwt
new file mode 100644
index 00000000..b2f77800
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm.dwt
@@ -0,0 +1,129 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Generisches Boot Image &nbsp;<code class='font_object'> {GBMCN} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='gbm_change.php' method='post'>
+
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='gbmcn' value='{GBMCN}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldgbmcn' value='{GBMCN}'> &nbsp;
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>KERNEL und APPEND Parameter:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <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='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server Pfad</b></td>
+ <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>KERNEL Image: </td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+1'>{TFTP}::{TFTPPATH}</font></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[kernel]' value='{KERNEL}' size='45' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[kernel]' value='{KERNEL}'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Initialram FS <br>(APPEND initrd=..): </b></td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+1'>{TFTP}::{TFTPPATH}</font></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[initrd]' value='{INITRD}' size='45' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[initrd]' value='{INITRD}'>
+ </td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Root Filesystem <br>(APPEND rootfs=..): </b></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ {SELECTOPTIONS}
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[rootfspath]' value='{ROOTFS}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[rootfspath]' value='{ROOTFS}'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>IPAPPEND: </b>&nbsp;</td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[ipappend]' value='{IPAPPEND}' size='2' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[ipappend]' value='{IPAPPEND}'>
+ </td>
+ </tr>
+
+ <input type='hidden' name='gbmdn' value='{GBMDN}'>
+ <input type='hidden' name='rbsdn' value='{RBSDN}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td><input type='Submit' name='apply' value='anwenden' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+ <tr>
+ <td height='40'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>Generisches Boot Image &nbsp;<code class='font_object'>{GBMCN}</code>&nbsp; l&ouml;schen:</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='delete_confirm.php' method='post'>
+
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ Das generische Boot Image wird komplett gel&ouml;scht.
+ </tr>
+
+ <input type='hidden' name='dn' value='{GBMDN}'>
+ <input type='hidden' name='name' value='{GBMCN}'>
+ <input type='hidden' name='type' value='gbm'>
+ <input type='hidden' name='delurl' value='gbm_delete.php'>
+ <input type='hidden' name='backurl' value='gbm.php?dn={GBMDN}&mnr={MNR}&sbmnr={SBMNR}'>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm.php b/ldap-site-mngmt/webinterface/rbs/gbm.php
new file mode 100644
index 00000000..59aefc5a
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm.php
@@ -0,0 +1,110 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = -1;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "gbm.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$gbmDN = $_GET['dn'];
+
+# rbservice und pxe daten (voerst nur ein rbs)
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+$rbsDN = $rbs_array[0]['dn'];
+# RBS Daten
+$rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip"));
+$template->assign(array("RBSCN" => $rbs_data['cn'],
+ "NFS" => $rbs_data['nfsserverip'],
+ "NFSPATH" => $rbs_data['exportpath'],
+ "TFTP" => $rbs_data['tftpserverip'],
+ "TFTPPATH" => $rbs_data['tftppath'],
+ "NBD" => $rbs_data['nbdserverip']));
+
+
+$template->assign(array("GBMDN" => $gbmDN,
+ "GBMCN" => "",
+ "LABEL" => "",
+ "KERNEL" => "",
+ "INITRD" => "",
+ "FSTYPE" => "",
+ "ROOTFS" => "",
+ "IPAPPEND" => ""));
+
+# GBM Daten
+$attributes = array("dn","cn","label","kernel","initrd","rootfstype","rootfspath","ipappend");
+$gbm = get_node_data($gbmDN, $attributes);
+
+if ($gbm['rootfstype'] == 'nfs'){
+ $options = "<select name='rootfstype' size='4' class='rootfs_form_selectbox'>
+ <option value='nfs' selected><b>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</b></option>
+ <option value=''>---------------------------------</option>
+ <option value='nbd'>nbd://".$rbs_data['nbdserverip'].":</option>
+ <option value='dnbd'>dnbd://".$rbs_data['nbdserverip'].":</option>
+ </select>
+ <input type='hidden' name='oldrootfstype' value='".$gbm['rootfstype']."'>";
+}
+if ($gbm['rootfstype'] == 'nbd'){
+ $options = "<select name='rootfstype' size='4' class='rootfs_form_selectbox'>
+ <option value='nbd' selected><b>nbd://".$rbs_data['nbdserverip'].":</b></option>
+ <option value=''>---------------------------------</option>
+ <option value='nfs'>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</option>
+ <option value='dnbd'>dnbd://".$rbs_data['nbdserverip'].":</option>
+ </select>
+ <input type='hidden' name='oldrootfstype' value='".$gbm['rootfstype']."'>";
+}
+if ($gbm['rootfstype'] == 'dnbd'){
+ $options = "<select name='rootfstype' size='4' class='rootfs_form_selectbox'>
+ <option value='dnbd' selected><b>dnbd://".$rbs_data['nbdserverip'].":</b></option>
+ <option value=''>---------------------------------</option>
+ <option value='nfs'>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</option>
+ <option value='nbd'>nbd://".$rbs_data['nbdserverip'].":</option>
+ </select>
+ <input type='hidden' name='oldrootfstype' value='".$gbm['rootfstype']."'>";
+}
+if ($gbm['rootfstype'] != 'nfs' && $gbm['rootfstype'] != 'nbd' && $gbm['rootfstype'] != 'dnbd'){
+ $options = "<select name='rootfstype' size='4' class='rootfs_form_selectbox'>
+ <option value='' selected>---------------------------------</option>
+ <option value='nfs'><b>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</b></option>
+ <option value='nbd'>nbd://".$rbs_data['nbdserverip'].":</option>
+ <option value='dnbd'>dnbd://".$rbs_data['nbdserverip'].":</option>
+ </select>
+ <input type='hidden' name='oldrootfstype' value=''>";
+}
+
+
+$template->assign(array("GBMCN" => $gbm['cn'],
+ "LABEL" => $gbm['label'],
+ "KERNEL" => $gbm['kernel'],
+ "INITRD" => $gbm['initrd'],
+ "SELECTOPTIONS" => $options,
+ "ROOTFS" => $gbm['rootfspath'],
+ "IPAPPEND" => $gbm['ipappend'],
+ "RBSDN" => $rbsDN,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr));
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_add.php b/ldap-site-mngmt/webinterface/rbs/gbm_add.php
new file mode 100644
index 00000000..2202b4fb
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm_add.php
@@ -0,0 +1,68 @@
+<?php
+include('../standard_header.inc.php');
+
+$gbmcn = $_POST['gbmcn']; $gbmcn = htmlentities($gbmcn);
+$rbsDN = $_POST['rbsdn'];
+
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+# print_r($meatts); echo "<br><br>";
+
+$seconds = 2;
+$get_gbmcn = str_replace ( " ", "_", $gbmcn );
+$url = "gbm.php?gbmcn=".$get_gbmcn."&mnr=".$mnr."&sbmnr=".$sbmnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+
+if ( $gbmcn != "" && $gbmcn != "Hier_NAME_eintragen" ){
+
+ # Formulareingaben anpassen
+ $expgbm = explode(" ",$gbmcn);
+ foreach ($expgbm as $word){$expuc[] = ucfirst($word);}
+ $gbmcn = implode(" ",$expuc);
+ $gbmcn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $gbmcn);
+
+ $gbmDN = "cn=".$gbmcn.",".$rbsDN;
+
+ if (add_gbm($gbmDN,$gbmcn,$atts)){
+ $mesg .= "<br>Neuen Generischen Men&uuml; Eintrag erfolgreich angelegt<br>";
+ $url = "gbm_overview.php";
+ }
+ else{
+ $mesg .= "<br>Fehler beim anlegen des Generischen Men&uuml; Eintrags!<br>";
+ }
+}
+
+elseif ( $gbmcn == "" || $gbmcn == "Hier_NAME_eintragen" ){
+
+ $mesg = "Sie haben den Namen des neuen Generischen Men&uuml; Eintrags nicht angegeben.
+ Dies ist aber ein notwendiges Attribut.<br>
+ Bitte geben Sie sie an.<br><br>";
+ $url = "new_gbm.php?gbmcn=Hier_NAME_eintragen&mnr=".$mnr."&sbmnr=".$sbmnr;
+}
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_change.php b/ldap-site-mngmt/webinterface/rbs/gbm_change.php
new file mode 100644
index 00000000..86067acd
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm_change.php
@@ -0,0 +1,210 @@
+<?php
+include('../standard_header.inc.php');
+
+$gbmcn = $_POST['gbmcn']; $gbmcn = htmlentities($gbmcn);
+$oldgbmcn = $_POST['oldgbmcn'];
+
+$gbmDN = $_POST['gbmdn'];
+$rbsDN = $_POST['rbsdn'];
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+
+$rootfstype = $_POST['rootfstype'];
+$oldrootfstype = $_POST['oldrootfstype'];
+
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+# print_r($meatts); echo "<br><br>";
+$oldattribs = $_POST['oldattribs'];
+if (count($oldattribs) != 0){
+ foreach (array_keys($oldattribs) as $key){
+ $oldatts[$key] = htmlentities($oldattribs[$key]);
+ }
+}
+#print_r($oldatts); echo "<br><br>";
+
+
+$seconds = 2;
+$get_mecn = str_replace ( " ", "_", $mecn );
+$url = "gbm.php?dn=".$gbmDN."&mnr=".$mnr."&sbmnr=".$sbmnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+##############################################
+# GBM CN (DN)
+
+if ( $oldgbmcn == $gbmcn ){
+ # $mesg = "keine Aenderung<br>";
+}
+
+if ( $oldgbmcn != "" && $gbmcn != "" && $oldgbmcn != $gbmcn ){
+ echo "Name Generisches Boot Men&uuml; aendern<br>";
+ # hier noch Syntaxcheck
+ # Formulareingaben anpassen
+ $expgbm = explode(" ",$gbmcn);
+ foreach ($expgbm as $word){$expuc[] = ucfirst($word);}
+ $gbmcn = implode(" ",$expuc);
+ $gbmcn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $gbmcn);
+
+
+ $newgbmDN = "cn=".$gbmcn.",".$rbsDN;
+ print_r($newgbmDN); echo "<br><br>";
+
+ if(move_subtree($gbmDN, $newgbmDN)){
+ adjust_gbm_dn($newgbmDN, $gbmDN);
+ $mesg = "Name Generisches Bootmen&uuml; erfolgreich ge&auml;ndert<br><br>";
+ $gbmDN = $newgbmDN;
+ }else{
+ $mesg = "Fehler beim &auml;ndern des Namen des Generischen Bootmen&uuml;s!<br><br>";
+ }
+
+ # newsubmenu holen...
+ $url = "gbm.php?dn=".$newgbmDN."&mnr=".$mnr."&sbmnr=".$sbmnr;
+}
+
+if ( $oldgbmcn != "" && $gbmcn == "" ){
+ echo "Name Generisches Bootmen&uuml; loeschen!<br>
+ Dieses ist Teil des DN, Sie werden des Generische Boot Men&uuml; komplett l&ouml;schen<br><br>";
+ echo "Wollen Sie das Generische Boot Men&uuml; <b>".$oldgbmcn."</b> wirklich l&ouml;schen?<br><br>
+ <form action='gbm_delete.php' method='post'>
+ Falls ja:<br><br>
+ <input type='hidden' name='dn' value='".$gbmDN."'>
+ <input type='hidden' name='name' value='".$oldgbmcn."'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'><br><br>
+ </form>
+ <form action='".$url."' method='post'>
+ Falls, nein:<br><br>
+ <input type='Submit' name='apply' value='zur&uuml;ck' class='small_loginform_button'>
+ </form>";
+ $seconds = 600;
+}
+
+###################################
+# RootFS Type
+
+if ( $oldrootfstype == $rootfstype ){
+ # $mesg = "keine Aenderung<br>";
+}
+
+if ( $oldrootfstype == "" && $rootfstype != "" ){
+ $entryadd ['rootfstype'] = $rootfstype;
+ if(ldap_mod_add($ds,$gbmDN,$entryadd)){
+ $mesg = "Attribute <b>RootfsType</b> erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der Attribute <b>RootfsType</b><br><br>";
+ }
+}
+
+
+if ( $oldrootfstype != "" && $rootfstype != "" && $oldrootfstype != $rootfstype ){
+ echo "Root FS Type &auml;ndern<br>";
+ $entrymod ['rootfstype'] = $rootfstype;
+ if(ldap_mod_replace($ds,$gbmDN,$entrymod)){
+ $mesg = "Attribute <b>RootfsType</b> erfolgreich geaendert<br><br>";
+ }else{
+ $mesg = "Fehler beim aendern der Attribute <b>RootfsType</b><br><br>";
+ }
+}
+
+
+if ( $oldrootfstype != "" && $rootfstype == "" ){
+ echo "Root FS Type l&ouml;schen!<br>";
+ $entrydel ['rootfstype'] = array();
+ if(ldap_mod_del($ds,$gbmDN,$entrydel)){
+ $mesg = "Attribute <b>RootfsType</b> erfolgreich geloescht<br><br>";
+ }else{
+ $mesg = "Fehler beim loeschen der Attribute <b>RootfsType</b><br><br>";
+ }
+}
+
+
+###################################
+# restliche Attribute
+
+$entryadd = array();
+$entrymod = array();
+$entrydel = array();
+
+foreach (array_keys($atts) as $key){
+
+ if ( $oldatts[$key] == $atts[$key] ){
+ # nix
+ }
+ 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,$gbmDN,$entryadd)){
+ $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>";
+ }
+}
+
+if (count($entrymod) != 0 ){
+ #print_r($entrymod); echo "<br>";
+ #echo "&auml;ndern<br>";
+ foreach (array_keys($entrymod) as $key){
+ $modatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_replace($ds,$gbmDN,$entrymod)){
+ $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>";
+ }else{
+ $mesg = "Fehler beim aendern der Attribute ".$modatts."<br><br>";
+ }
+}
+
+if (count($entrydel) != 0 ){
+ #print_r($entrydel); echo "<br>";
+ #echo "l&ouml;schen<br>";
+ foreach (array_keys($entrydel) as $key){
+ $delatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_del($ds,$gbmDN,$entrydel)){
+ $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>";
+ }else{
+ $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>";
+ }
+}
+
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_delete.php b/ldap-site-mngmt/webinterface/rbs/gbm_delete.php
new file mode 100644
index 00000000..8777981a
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm_delete.php
@@ -0,0 +1,40 @@
+<?php
+include('../standard_header.inc.php');
+
+$gbmDN = $_POST['dn'];
+$gbmcn = $_POST['name'];
+
+$seconds = 1;
+$url = "gbm_overview.php?";
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $gbmDN != ""){
+
+ clean_up_del_gbm($gbmDN);
+ if ( dive_into_tree_del($gbmDN,"") ){
+ clean_up_del_gbm($gbmDN);
+ $mesg = "Generisches Bootmen&uuml; <b>".$gbmcn."</b> erfolgreich gel&ouml;scht!<br><br>";
+ }
+ else{
+ $mesg = "Fehler beim l&ouml;schen des Generischen Bootmen&uuml;s <b>".$gbmcn."</b> !<br><br>";
+ }
+
+}
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_overview.dwt b/ldap-site-mngmt/webinterface/rbs/gbm_overview.dwt
new file mode 100644
index 00000000..794315e6
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm_overview.dwt
@@ -0,0 +1,29 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Generische Boot Images</h3>
+ Diese Boot Images werden vom Remote Boot Service <code class='font_object'> {RBSCN} </code>
+ angeboten. Sie k&ouml;nnen f&uuml;r jedes Image festlegen, wer dieses Angebot in Anspruch nehmen
+ kann (Spektrum zwischen (a) ihrer Abteilung <code class='font_object'> {AU} </code> und ihrer Unterabteilungen, und (b) organisationsweit) </td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+ <tr>
+ <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Generisches Boot Men&uuml;</b></td>
+ <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Netzwerk Dateisystem</b></td>
+ </tr>
+
+ <!-- BEGIN DYNAMIC BLOCK: Genericbm -->
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{GBMCN} &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{FS}&nbsp;</td>
+ </tr>
+ <!-- END DYNAMIC BLOCK: Genericbm -->
+
+ </table></td>
+ </tr>
+
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/gbm_overview.php b/ldap-site-mngmt/webinterface/rbs/gbm_overview.php
new file mode 100644
index 00000000..1158a396
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/gbm_overview.php
@@ -0,0 +1,56 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 2;
+$sbmnr = -1;
+$mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "gbm_overview.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$template->assign(array("GBMDN" => "",
+ "GBMCN" => "Noch keine Generischen Boot Men&uuml;s angelegt",
+ "KERNEL" => "",
+ "FS" => ""));
+
+# rbservice und pxe daten (voerst nur ein rbs)
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+$rbsDN = $rbs_array[0]['dn'];
+
+# Generic Bootmenüs
+$generic_bms = get_menuentries($rbsDN,array("dn","cn","label","kernel","nfsroot","nbdroot"));
+
+$template->define_dynamic("Genericbm", "Webseite");
+$template->define_dynamic("Offers", "Webseite");
+foreach ($generic_bms as $gbm){
+ if ($gbm['nfsroot'] != ""){$fs = "NFS";}
+ if ($gbm['nbdroot'] != ""){$fs = "NBD";}
+ $template->assign(array("GBMDN" => $gbm['dn'],
+ "GBMCN" => $gbm['cn'],
+ "KERNEL" => $gbm['kernel'],
+ "FS" => $fs));
+ $template->parse("GENERICBM_LIST", ".Genericbm");
+}
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?>
diff --git a/ldap-site-mngmt/webinterface/rbs/menu.dwt b/ldap-site-mngmt/webinterface/rbs/menu.dwt
new file mode 100644
index 00000000..fe37aeee
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menu.dwt
@@ -0,0 +1,31 @@
+
+<table cellpadding='0' cellspacing='0' border='0' width='100%'>
+
+
+ <!-- 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}">&nbsp;</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>
+ <td width='10%'>&nbsp;</td>
+
+ </tr>
+
+
+
+
+ <!-- BEGIN DYNAMIC BLOCK: Submenu -->
+
+ {SUB}
+
+ <!-- END DYNAMIC BLOCK: Submenu -->
+
+ <tr height='5'>
+ </tr>
+
+<!-- END DYNAMIC BLOCK: Hauptmenu -->
+
+</table>
diff --git a/ldap-site-mngmt/webinterface/rbs/menuentry.dwt b/ldap-site-mngmt/webinterface/rbs/menuentry.dwt
new file mode 100644
index 00000000..07f71d95
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuentry.dwt
@@ -0,0 +1,247 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td height='20'><h4>Zur&uuml;ck zu &nbsp;<a href='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}' class='headerlink'>{PXECN}</a></h4></td>
+ </tr>
+ <tr>
+ <td height='20'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan='2'><h3>Boot Men&uuml; Eintrag &nbsp;<code class='font_object'> {MECN} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='20'>&nbsp;</td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='menuentry_change.php' method='post'>
+
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='mecn' value='{MECN}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldmecn' value='{MECN}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Label:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[label]' value='{LABEL}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[label]' value='{LABEL}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Generisches Boot Image: </b><br><br>(Angeboten von) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <h4>{GMECN}</h4> Abteilung: {GMEOU} [Remote Boot Dienst: {GMERBS}]
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Label:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menulabel]' value='{MELABEL}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menulabel]' value='{MELABEL}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Default:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menudefault]' value='{MEDEF}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menudefault]' value='{MEDEF}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Passwd:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menupasswd]' value='{MEPASSWD}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menupasswd]' value='{MEPASSWD}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Hide:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menuhide]' value='{MEHIDE}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menuhide]' value='{MEHIDE}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Localboot:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[localboot]' value='{LOCALBOOT}' size='50' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[localboot]' value='{LOCALBOOT}'> &nbsp;
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>APPEND Parameter:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='80%' 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>Client Konfiguration via: &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[clientconfvia]' value='{CCV}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[clientconfvia]' value='{CCV}'> ( dhcp | file | ldap )
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>vga: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[vga]' value='{VGA}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[vga]' value='{VGA}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>splash: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[splash]' value='{SPLASH}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[splash]' value='{SPLASH}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>vci: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[vci]' value='{VCI}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[vci]' value='{VCI}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>no ldsc: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[noldsc]' value='{NOLDSC}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[noldsc]' value='{NOLDSC}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>elevator: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[elevator]' value='{ELEVATOR}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[elevator]' value='{ELEVATOR}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>apic: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[apic]' value='{APIC}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[apic]' value='{APIC}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Union FS: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[unionfs]' value='{UNIONFS}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[unionfs]' value='{UNIONFS}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>cowloop: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[cowloop]' value='{COWLOOP}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[cowloop]' value='{COWLOOP}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Debug Level: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[debug]' value='{DEBUG}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[debug]' value='{DEBUG}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Men&uuml; Position: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='menpos' value='{MENPOS}' size='2' class='medium_form_field'>
+ <input type='hidden' name='oldmenpos' value='{MENPOS}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Submen&uuml; Verweis: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[submenulink]' value='{SUBMENULINK}' size='50' class='medium_form_field'>
+ <br>
+ Dieses Feld sollte nur bei Verweisen auf Submen&uuml;s den vollst&auml;ndigen Link zu diesen enthalten
+ <br>(d.h. &lt;TFTP-Server-IP&gt;::/&lt;TFTP-PXE-Pfad&gt;/&lt;Timerange&gt;/&lt;PXE-Dateiname&gt;). <br>
+ Bei Textzeilen und Leerzeilen muss hier <b>"self"</b> stehen. <br>
+ Bei normalen Men&uuml;eintr&auml;gen (inklusive Localboot) muss diese Feld <b>leer</b> sein.
+ <input type='hidden' name='oldattribs[submenulink]' value='{SUBMENULINK}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Kernel: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[kernel]' value='{KERNEL}' size='50' class='medium_form_field'>
+ <br>
+ Angabe hier nur sinnvoll bei Leer-, Textzeilen oder Submen&uuml;verweisen, <br>
+ denn Eingabe wird, wenn der Men&uuml;eintrag auf ein generisches Boot Image verweist (siehe oben) <br>
+ bei der PXE Datei Generierung &uuml;berschrieben.
+ <input type='hidden' name='oldattribs[kernel]' value='{KERNEL}'> &nbsp;
+ </td>
+ </tr>
+
+ <input type='hidden' name='medn' value='{MEDN}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <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>
+ <td><input type='Submit' name='apply' value='anwenden' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+ <tr>
+ <td height='40'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>Boot Men&uuml; Eintrag &nbsp;<code class='font_object'>{MECN}</code>&nbsp; l&ouml;schen:</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='delete_confirm.php' method='post'>
+
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ Das generische Boot Image wird komplett gel&ouml;scht.
+ </tr>
+
+ <input type='hidden' name='dn' value='{MEDN}'>
+ <input type='hidden' name='name' value='{MECN}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='delurl' value='menuentry_delete.php'>
+ <input type='hidden' name='successurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'>
+ <input type='hidden' name='backurl' value='menuentry.php?dn={MEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/menuentry.php b/ldap-site-mngmt/webinterface/rbs/menuentry.php
new file mode 100644
index 00000000..83396ec8
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuentry.php
@@ -0,0 +1,158 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 3;
+$sbmnr = -1;
+$mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "menuentry.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$sbmnr = $_GET['sbmnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$meDN = $_GET['dn'];
+
+$attributes = array("cn","genericmenuentrydn","label","menulabel","menudefault","menupasswd","vga","splash",
+ "noldsc","elevator","clientconfvia","apic",
+ "cowloop","unionfs","debug","vci","menuhide","menuposition","localboot","kernel","submenulink");
+$me = get_node_data($meDN,$attributes);
+#print_r($me);
+
+# PXE DN
+$exp = explode(',',$meDN);
+$node = array_slice($exp,1);
+$exppxecn = explode('=',$node[0]);
+$pxecn = $exppxecn[1];
+$pxeDN = implode(',',$node);
+
+# Generic Menu Entry
+$expgbm = ldap_explode_dn ($me['genericmenuentrydn'],1);
+$gmecn = $expgbm[0];
+$gmerbs = $expgbm[1];
+$gmeou = $expgbm[3];
+
+# RBS Daten
+$pxe = get_node_data($pxeDN,array("rbservicedn"));
+$rbsDN = $pxe['rbservicedn'];
+$exp = explode(',',$rbsDN);
+$exprbsau = explode('=',$exp[2]); $rbsau = $exprbsau[1];
+$rbsdata = get_node_data($rbsDN,array("cn","nfsserverip","exportpath","tftpserverip","tftppath"));
+
+# Bootmenu Daten
+$template->assign(array("MEDN" => $meDN,
+ "MECN" => $me['cn'],
+ "GMECN" => $gmecn,
+ "GMEOU" => $gmeou,
+ "GMERBS" => $gmerbs,
+ "LABEL" => $me['label'],
+ "MELABEL" => $me['menulabel'],
+ "MEDEF" => $me['menudefault'],
+ "MEPASSWD" => $me['menupasswd'],
+ "MEHIDE" => $me['menuhide'],
+ "VGA" => $me['vga'],
+ "SPLASH" => $me['splash'],
+ "NOLDSC" => $me['noldsc'],
+ "ELEVATOR" => $me['elevator'],
+ "VCI" => $me['vci'],
+ "CCV" => $me['clientconfvia'],
+ "APIC" => $me['apic'],
+ "COWLOOP" => $me['cowloop'],
+ "UNIONFS" => $me['unionfs'],
+ "DEBUG" => $me['debug'],
+ "MENPOS" => $me['menuposition'],
+ "LOCALBOOT" => $me['localboot'],
+ "KERNEL" => $me['kernel'],
+ "SUBMENULINK" => $me['submenulink'],
+ "PXEDN" => $pxeDN,
+ "PXECN" => $pxecn,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr,
+ "MCNR" => $mcnr));
+
+# Alternative RB Dienste holen
+$altrbs = get_rbservices($auDN,array("dn","cn"));
+if (count($altrbs) != 0){
+ for ($i=0; $i < count($altrbs); $i++){
+ if ($rbsDN == $altrbs[$i]['dn']){
+ array_splice($altrbs, $i, 1);
+ }
+ }
+}
+
+
+if (count($altrbs) != 0){
+$template->define_dynamic("Altrbs", "Webseite");
+ foreach ($altrbs as $item){
+ $altrbsexp = explode(',',$item['dn']);
+ $altrbsau = explode('=',$altrebsexp[2]);
+ $template->assign(array("ALTRBSDN" => $item['dn'],
+ "ALTRBSCN" => $item['cn'],
+ "ALTRBSAU" => "[ ".$altrbsau[1]." ]"));
+ $template->parse("ALTRBS_LIST", ".Altrbs");
+ }
+}else{
+ $template->assign(array("ALTRBSDN" => "",
+ "ALTRBSCN" => "",
+ "ALTRBSAU" => ""));
+}
+
+################################################
+# Bootmenü Einträge
+
+$menuentries = get_menuentries($pxeDN,array("dn","menuposition","label","menulabel"));
+#print_r($menuentries); echo "<br>";
+
+$template->define_dynamic("Bootmenu", "Webseite");
+
+foreach ($menuentries as $me){
+ $template->assign(array("MENDN" => $me['dn'],
+ "MENULABEL" => $me['menulabel'],
+ "POSITION" => $me['menuposition'],
+ "AUDN" => $auDN));
+ $template->parse("BOOTMENU_LIST", ".Bootmenu");
+}
+
+
+################################################
+# 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");
+}
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?>
diff --git a/ldap-site-mngmt/webinterface/rbs/menuentry_add.php b/ldap-site-mngmt/webinterface/rbs/menuentry_add.php
new file mode 100644
index 00000000..8b0c4368
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuentry_add.php
@@ -0,0 +1,258 @@
+<?php
+include('../standard_header.inc.php');
+
+$mecn = $_POST['mecn']; $mecn = htmlentities($mecn);
+$gbmDN = $_POST['gbm'];
+$menpos = $_POST['menpos'];
+$maxpos = $_POST['maxpos'];
+
+$typ = $_POST['typ'];
+$pxeDN = $_POST['pxedn'];
+$timespan = $_POST['timerange'];
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+
+$meattribs = $_POST['attribs'];
+if (count($meattribs) != 0){
+ foreach (array_keys($meattribs) as $key){
+ $meatts[$key] = htmlentities($meattribs[$key]);
+ }
+}
+# print_r($meatts); echo "<br><br>";
+
+$seconds = 2;
+$get_mecn = str_replace ( " ", "_", $mecn );
+$url = "pxe.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+# switch wäre besser ...
+if ($typ == "newme" && $typ != "local" && $typ != "text" && $typ != "leer" && $typ != "submenu" ){
+
+ if ( $mecn != "" && $mecn != "Hier_NAME_eintragen" && $gbmDN != "none" ){
+
+ # Formulareingaben anpassen
+ $expme = explode(" ",$mecn);
+ foreach ($expme as $word){$expuc[] = ucfirst($word);}
+ $mecn = implode(" ",$expuc);
+ $mecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mecn);
+
+ if ($menpos != ""){
+ # Syntaxcheck Menüposition
+ #$syntax = new Syntaxcheck;
+ #if (!($syntax->check_menuposition($menpos))){
+ # $menpos = $maxpos;
+ #}
+ }else{
+ $menpos = $maxpos;
+ }
+ if (strlen($menpos) == 1){
+ $menpos = "0".$menpos;
+ }
+ # nun doch führende Nullen erzwingen
+ # also obsolet: $menpos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+
+ $meDN = "cn=".$mecn.",".$pxeDN;
+
+ if (add_me($meDN,$mecn,$gbmDN,$menpos,$meatts,$pxeDN)){
+ $mesg .= "<br>Neuen Men&uuml; Eintrag erfolgreich angelegt<br>";
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+ }
+ else{
+ $mesg .= "<br>Fehler beim anlegen des Men&uuml; Eintrags!<br>";
+ }
+ }
+
+ elseif ( $mecn == "" || $mecn == "Hier_NAME_eintragen" || $gbmDN == "none" ){
+
+ $mesg = "Sie haben den Namen des neuen Men&uuml; Eintrags nicht angegeben oder kein
+ Generisches Boot Image ausgew&auml;hlt. Beide sind aber ein notwendige Attribute.<br>
+ Bitte geben Sie sie an.<br><br>";
+ $url = "new_menuentry.php?mecn=Hier_NAME_eintragen&mnr=".$mnr."&sbmnr=".$sbmnr;
+ }
+}
+
+# Localboot Zeile hinzufügen
+elseif ($typ == "local" && $typ != "newme" && $typ != "text" && $typ != "leer" && $typ != "submenu" ){
+
+ # Menu Position
+ $menpos = $_POST['localpos'];
+ if ($menpos != ""){
+ # Syntaxcheck Menüposition
+ #$syntax = new Syntaxcheck;
+ #if (!($syntax->check_menuposition($menpos))){
+ # $menpos = $maxpos;
+ #}
+ }else{
+ $menpos = $maxpos;
+ }
+ if (strlen($menpos) == 1){
+ $menpos = "0".$menpos;
+ }
+ # nun doch führende Nullen erzwingen
+ # also obsolet: $menpos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+
+ # CN bilden
+ $brothers = get_menuentries($pxeDN,array("dn","cn"));
+ $i=1;
+ $localcn = "localboot".$i;
+ if(count($brothers) != 0){
+ for ($c=0; $c<count($brothers); $c++){
+ foreach ($brothers as $item){
+ if ($localcn == strtolower($item['cn'])){
+ $i++;
+ $localcn = "localboot".$i;
+ }
+ }
+ }
+ }
+ $meDN = "cn=".$localcn.",".$pxeDN;
+ $entry ['objectclass'][0] = "MenuEntry";
+ $entry ['objectclass'][1] = "top";
+ $entry ['cn'] = $localcn;
+ $entry ['menuposition'] = $menpos;
+ $entry ['label'] = $localcn;
+ $entry ['menulabel'] = $_POST['locallabel'];
+ $entry ['menupasswd'] = $_POST['localpasswd'];
+ $entry ['localboot'] = "level 0";
+ $pos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+ increment_menupositions($pxeDN,$pos); # andere jeweils um 1 erhöhen
+ if (ldap_add($ds,$meDN,$entry)){
+ $mesg .= "Localboot Zeile erfolgeich an Position ".$menpos." eingetragen";
+ }else{
+ $mesg .= "Fehler beim eintragen der Localboot Zeile!";
+ }
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+}
+
+
+# Text Zeile hinzufügen
+elseif ($typ == "text" && $typ != "newme" && $typ != "local" && $typ != "leer" && $typ != "submenu" ){
+
+ # Menu Position
+ $menpos = $_POST['textpos'];
+ if ($menpos != ""){
+ # Syntaxcheck Menüposition
+ #$syntax = new Syntaxcheck;
+ #if (!($syntax->check_menuposition($menpos))){
+ # $menpos = $maxpos;
+ #}
+ }else{
+ $menpos = $maxpos;
+ }
+ if (strlen($menpos) == 1){
+ $menpos = "0".$menpos;
+ }
+ # nun doch führende Nullen erzwingen
+ # also obsolet: $menpos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+
+ $text = $_POST['text'];
+ if($text != "" && $text != "TEXT"){
+ $brothers = get_menuentries($pxeDN,array("dn","cn"));
+ $i=1;
+ $textcn = "textzeile".$i;
+ if(count($brothers) != 0){
+ for ($c=0; $c<count($brothers); $c++){
+ foreach ($brothers as $item){
+ if ($textcn == strtolower($item['cn'])){
+ $i++;
+ $textcn = "textzeile".$i;
+ }
+ }
+ }
+ }
+ $meDN = "cn=".$textcn.",".$pxeDN;
+ $entry ['objectclass'][0] = "MenuEntry";
+ $entry ['objectclass'][1] = "top";
+ $entry ['cn'] = $textcn;
+ $entry ['menuposition'] = $menpos;
+ $entry ['label'] = $text;
+ $entry ['kernel'] = "menu.c32";
+ # Submenulink auf sich selbst
+ $pxedata = get_node_data($pxeDN,array("filename"));
+ $entry ['submenulink'] = "self";
+
+ $pos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+ increment_menupositions($pxeDN,$pos); # andere jeweils um 1 erhöhen
+ if (ldap_add($ds,$meDN,$entry)){
+ $mesg .= "Textzeile erfolgeich an Position ".$menpos." eingetragen";
+ }else{
+ $mesg .= "Fehler beim eintragen der Textzeile!";
+ }
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+ }
+}
+
+
+elseif ($typ == "leer" && $typ != "newme" && $typ != "local" && $typ != "text" && $typ != "submenu" ){
+
+ # Menu Position
+ $menpos = $_POST['leerpos'];
+ if ($menpos != ""){
+ # Syntaxcheck Menüposition
+ #$syntax = new Syntaxcheck;
+ #if (!($syntax->check_menuposition($menpos))){
+ # $menpos = $maxpos;
+ #}
+ }else{
+ $menpos = $maxpos;
+ }
+ if (strlen($menpos) == 1){
+ $menpos = "0".$menpos;
+ }
+ # nun doch führende Nullen erzwingen
+ # also obsolet: $menpos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+
+ # CN bilden
+ $brothers = get_menuentries($pxeDN,array("dn","cn"));
+ $i=1;
+ $leercn = "leerzeile".$i;
+ if(count($brothers) != 0){
+ for ($c=0; $c<count($brothers); $c++){
+ foreach ($brothers as $item){
+ if ($leercn == strtolower($item['cn'])){
+ $i++;
+ $leercn = "leerzeile".$i;
+ }
+ }
+ }
+ }
+ $meDN = "cn=".$leercn.",".$pxeDN;
+ $entry ['objectclass'][0] = "MenuEntry";
+ $entry ['objectclass'][1] = "top";
+ $entry ['cn'] = $leercn;
+ $entry ['menuposition'] = $menpos;
+ $entry ['kernel'] = "menu.c32";
+ # Submenulink auf sich selbst
+ $pxedata = get_node_data($pxeDN,array("filename"));
+ $entry ['submenulink'] = "self";
+
+ # wieder führende Nullen weg für increment_menpos
+ $pos = preg_replace ( '/0([0-9])/', '$1', $menpos);
+ increment_menupositions($pxeDN,$pos); # andere jeweils um 1 erhöhen
+ if (ldap_add($ds,$meDN,$entry)){
+ $mesg .= "Leerzeile erfolgeich an Position ".$menpos." eingetragen";
+ }else{
+ $mesg .= "Fehler beim eintragen der Leerzeile!";
+ }
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+}
+
+
+elseif ($typ == "submenu" && $typ != "newme" && $typ != "local" && $typ != "text" && $typ != "leer" ){
+}
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/menuentry_change.php b/ldap-site-mngmt/webinterface/rbs/menuentry_change.php
new file mode 100644
index 00000000..40d5d60d
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuentry_change.php
@@ -0,0 +1,207 @@
+<?php
+include('../standard_header.inc.php');
+
+$mecn = $_POST['mecn']; $mecn = htmlentities($mecn);
+$oldmecn = $_POST['oldmecn'];
+
+$menpos = $_POST['menpos'];
+if (strlen($menpos) == 1){
+ $menpos = "0".$menpos;
+}
+$oldmenpos = $_POST['oldmenpos'];
+if (strlen($oldmenpos) == 1){
+ $oldmenpos = "0".$oldmenpos;
+}
+
+$meDN = $_POST['medn'];
+$pxeDN = $_POST['pxedn'];
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+# print_r($meatts); echo "<br><br>";
+$oldattribs = $_POST['oldattribs'];
+if (count($oldattribs) != 0){
+ foreach (array_keys($oldattribs) as $key){
+ $oldatts[$key] = htmlentities($oldattribs[$key]);
+ }
+}
+#print_r($oldatts); echo "<br><br>";
+
+
+
+$seconds = 2;
+$get_mecn = str_replace ( " ", "_", $mecn );
+$url = "menuentry.php?dn=".$meDN."&mnr=".$mnr."&sbmnr=".$sbmnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+##############################################
+# ME CN (DN)
+
+if ( $oldmecn == $mecn ){
+ # $mesg = "keine Aenderung<br>";
+}
+
+if ( $oldmecn != "" && $mecn != "" && $oldmecn != $mecn ){
+ echo "Men&uuml; Eintrag Name aendern<br>";
+ # hier noch Syntaxcheck
+ # Formulareingaben anpassen
+ $expme = explode(" ",$mecn);
+ foreach ($expme as $word){$expuc[] = ucfirst($word);}
+ $mecn = implode(" ",$expuc);
+ $mecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mecn);
+
+
+ $newmeDN = "cn=".$mecn.",".$pxeDN;
+ print_r($newmeDN); echo "<br><br>";
+
+ if(modify_me_dn($meDN, $newmeDN)){
+ $mesg = "Men&uuml; Eintrag Name erfolgreich ge&auml;ndert<br><br>";
+ $meDN = $newmeDN;
+ }else{
+ $mesg = "Fehler beim &auml;ndern des PMen&uuml; Eintrag Namen!<br><br>";
+ }
+
+
+ # newsubmenu holen...
+ $url = "menuentry.php?dn=".$newmeDN."&mnr=".$mnr."&sbmnr=".$sbmnr;
+}
+
+if ( $oldmecn != "" && $mecn == "" ){
+ echo "Men&uuml; Eintrag Name loeschen!<br>
+ Dieses ist Teil des DN, Sie werden den Men&uuml; Eintrag komplett l&ouml;schen<br><br>";
+ echo "Wollen Sie den Men&uuml; Eintrag <b>".$oldmecn."</b> wirklich l&ouml;schen?<br><br>
+ <form action='menuentry_delete.php' method='post'>
+ Falls ja:<br><br>
+ <input type='hidden' name='dn' value='".$meDN."'>
+ <input type='hidden' name='name' value='".$oldmecn."'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'><br><br>
+ </form>
+ <form action='".$url."' method='post'>
+ Falls, nein:<br><br>
+ <input type='Submit' name='apply' value='zur&uuml;ck' class='small_loginform_button'>
+ </form>";
+ $seconds = 600;
+}
+
+
+###################################
+# Menu Position
+
+if ( $menpos == $oldmenpos || $menpos == "" ){
+ # keine Änderung
+}
+
+if ( $menpos != "" && $oldmenpos != $menpos ){
+ echo "Men&uuml; Position &auml;ndern<br><br>";
+ # Syntax Check fehlt noch
+
+ # switch partner finden
+ $secmeDN = get_dn_menuposition($pxeDN,$menpos);
+ $entrysec ['menuposition'] = $oldmenpos;
+ if (ldap_mod_replace($ds,$secmeDN,$entrysec)){
+ $entry ['menuposition'] = $menpos;
+ if (ldap_mod_replace($ds,$meDN,$entry)){
+ #cleanup_menupositions($pxeDN);
+ $mesg .= "Men&uuml; Position erfolgeich nach <b>".$menpos."</b> ge&auml;ndert";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern der Men&uuml; Position!";
+ }
+ }else{
+ $mesg .= "Fehler beim &auml;ndern der Men&uuml; Position!";
+ }
+}
+
+###################################
+# restliche Attribute
+
+$entryadd = array();
+$entrymod = array();
+$entrydel = array();
+
+foreach (array_keys($atts) as $key){
+
+ if ( $oldatts[$key] == $atts[$key] ){
+ # nix
+ }
+ 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,$meDN,$entryadd)){
+ $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>";
+ }
+}
+
+if (count($entrymod) != 0 ){
+ #print_r($entrymod); echo "<br>";
+ #echo "&auml;ndern<br>";
+ foreach (array_keys($entrymod) as $key){
+ $modatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_replace($ds,$meDN,$entrymod)){
+ $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>";
+ }else{
+ $mesg = "Fehler beim aendern der Attribute ".$modatts."<br><br>";
+ }
+}
+
+if (count($entrydel) != 0 ){
+ #print_r($entrydel); echo "<br>";
+ #echo "l&ouml;schen<br>";
+ foreach (array_keys($entrydel) as $key){
+ $delatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_del($ds,$meDN,$entrydel)){
+ $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>";
+ }else{
+ $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>";
+ }
+}
+
+###################################
+# Ende, noch Redirect
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/menuentry_delete.php b/ldap-site-mngmt/webinterface/rbs/menuentry_delete.php
new file mode 100644
index 00000000..ba06eb55
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuentry_delete.php
@@ -0,0 +1,41 @@
+<?php
+include('../standard_header.inc.php');
+
+$meDN = $_POST['dn'];
+$mecn = $_POST['name'];
+
+$pxeDN = $_POST['pxedn'];
+
+$seconds = 1;
+$url = $_POST['successurl'];
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $meDN != ""){
+
+ if ( dive_into_tree_del($meDN,"") ){
+ cleanup_menupositions($pxeDN);
+ $mesg = "Bootmen&uuml; Eintrag <b>".$mecn."</b> erfolgreich gel&ouml;scht!<br><br>";
+ }
+ else{
+ $mesg = "Fehler beim l&ouml;schen des Bootmen&uuml; Eintrags <b>".$mecn."</b> !<br><br>";
+ }
+
+}
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/menuposition_down.php b/ldap-site-mngmt/webinterface/rbs/menuposition_down.php
new file mode 100644
index 00000000..d7b235ce
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuposition_down.php
@@ -0,0 +1,41 @@
+<?php
+include('../standard_header.inc.php');
+
+$meDN = $_GET['dn'];
+$oldpos = $_GET['pos'];
+
+$pxeDN = $_GET['pxedn'];
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+
+$me = get_menuentries($pxeDN,array("cn"));
+$maxpos = count($me);
+
+$oldpos = preg_replace ( '/0([0-9])/', '$1', $oldpos);
+if ($oldpos < $maxpos){
+
+ $newpos = $oldpos +1;
+ if (strlen($newpos) == 1){
+ $newpos = "0".$newpos;
+ }
+ if (strlen($oldpos) == 1){
+ $oldpos = "0".$oldpos;
+ }
+
+ if ($secmeDN = get_dn_menuposition($pxeDN,$newpos)){
+ #echo "other meDN:"; print_r($secmeDN); echo "<br>";
+ $entrysec ['menuposition'] = $oldpos;
+ if ($result = ldap_mod_replace($ds,$secmeDN,$entrysec)){
+ $entrymenu ['menuposition'] = $newpos;
+ $result = ldap_mod_replace($ds,$meDN,$entrymenu);
+ }
+ }
+}
+$seconds = 0;
+$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&#menu";
+$mesg = "";
+#$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+# Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/menuposition_up.php b/ldap-site-mngmt/webinterface/rbs/menuposition_up.php
new file mode 100644
index 00000000..c2611651
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/menuposition_up.php
@@ -0,0 +1,39 @@
+<?php
+include('../standard_header.inc.php');
+
+$meDN = $_GET['dn'];
+$oldpos = $_GET['pos'];
+
+$pxeDN = $_GET['pxedn'];
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+
+$oldpos = preg_replace ( '/0([0-9])/', '$1', $oldpos);
+if ($oldpos != 1){
+
+ $newpos = $oldpos-1;
+ if (strlen($newpos) == 1){
+ $newpos = "0".$newpos;
+ }
+ if (strlen($oldpos) == 1){
+ $oldpos = "0".$oldpos;
+ }
+
+ if ($secmeDN = get_dn_menuposition($pxeDN,$newpos)){
+ #echo "other meDN:"; print_r($secmeDN); echo "<br>";
+ $entrysec ['menuposition'] = $oldpos;
+ if ($result = ldap_mod_replace($ds,$secmeDN,$entrysec)){
+ $entrymenu ['menuposition'] = $newpos;
+ $result = ldap_mod_replace($ds,$meDN,$entrymenu);
+ }
+
+ }
+}
+$seconds = 0;
+$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&#menu";
+$mesg = "";
+#$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+# Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt b/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt
new file mode 100644
index 00000000..b84cf66d
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_gbm.dwt
@@ -0,0 +1,91 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Generisches Boot Image &nbsp;<code class='font_object'> {GBMCN} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='gbm_add.php' method='post'>
+
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='gbmcn' value='{GBMCN}' size='50' class='medium_form_field'>
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>KERNEL und APPEND Parameter:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <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='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server Pfad</b></td>
+ <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>KERNEL Image: &nbsp;</td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+1'>{TFTP}::{TFTPPATH}</font></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[kernel]' value='' size='45' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Initrd (APPEND): </b>&nbsp;</td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+1'>{TFTP}::{TFTPPATH}</font></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[initrd]' value='' size='45' class='medium_form_field'>
+
+ </td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Root Filesystem <br>(APPEND rootfs=..): </b></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='attribs[rootfstype]' size='4' class='rootfs_form_selectbox'>
+ {SELECTOPTIONS}
+ </select></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[rootfspath]' value='{ROOTFS}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>IPAPPEND: </b>&nbsp;</td>
+ <td align='right' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[ipappend]' value='1' size='2' class='medium_form_field'>
+ </td>
+ </tr>
+
+ <input type='hidden' name='rbsdn' value='{RBSDN}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+
+ </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/rbs/new_gbm.php b/ldap-site-mngmt/webinterface/rbs/new_gbm.php
new file mode 100644
index 00000000..4ece741c
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_gbm.php
@@ -0,0 +1,66 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = -1;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "new_gbm.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$gbmcn = str_replace ( "_", " ", $_GET['gbmcn']);
+
+# rbservice und pxe daten (voerst nur ein rbs)
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+$rbsDN = $rbs_array[0]['dn'];
+
+# RBS Daten
+$rbs_data = get_node_data($rbsDN, array("cn","nfsserverip","exportpath","tftpserverip","tftppath","nbdserverip"));
+$template->assign(array("RBSCN" => $rbs_data['cn'],
+ "TFTP" => $rbs_data['tftpserverip'],
+ "TFTPPATH" => $rbs_data['tftppath'],
+ "NFS" => $rbs_data['nfsserverip'],
+ "NFSPATH" => $rbs_data['exportpath'],
+ "NBD" => $rbs_data['nbdserverip']));
+
+
+$options = "<option value='none' selected>----------------------------</option>
+ <option value='nfs'><b>nfs://".$rbs_data['nfsserverip'].":/".$rbs_data['exportpath']."</b></option>
+ <option value='nbd'>nbd://".$rbs_data['nbdserverip'].":</option>
+ <option value='dnbd'>dnbd://".$rbs_data['nbdserverip'].":</option>";
+
+$template->assign(array("GBMCN" => $gbmcn,
+ "LABEL" => "",
+ "KERNEL" => "",
+ "INITRD" => "",
+ "SELECTOPTIONS" => $options,
+ "ROOTFS" => "",
+ "IPAPPEND" => "",
+ "RBSDN" => $rbsDN,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr));
+
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/new_menuentry.dwt b/ldap-site-mngmt/webinterface/rbs/new_menuentry.dwt
new file mode 100644
index 00000000..2b0e7860
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_menuentry.dwt
@@ -0,0 +1,188 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td height='20'><h4>Zur&uuml;ck zu &nbsp;<a href='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}' class='headerlink'>{PXECN}</a></h4></td>
+ </tr>
+ <tr>
+ <td height='20'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan='2'><h3>Neuen Boot Men&uuml; Eintrag anlegen:</h3></td>
+ </tr>
+ <tr>
+ <td height='20'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Notwendige Attribute:</h4></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='menuentry_add.php' method='post'>
+
+ <tr>
+ <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 height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='mecn' value='{MECN}' size='60' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Label:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[label]' value='{LABEL}' size='60' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50' valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Generische Boot Images: </b><br>(W&auml;hlen Sie eines aus) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='gbm' size='5' class='large_form_selectbox'>
+ <option selected value='none'>----------</option>
+ <!-- BEGIN DYNAMIC BLOCK: Gbms -->
+ <option value='{GBMDN}'>{GBMCN} &nbsp;[Abt.: {RBSAU}]</option>
+ <!-- END DYNAMIC BLOCK: Gbms -->
+ </select>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Men&uuml; Position: </b><br>
+ (Bitte ohne f&uuml;hrende Null)&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='menpos' value='{MAXPOS}' size='2' class='medium_form_field'>
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Optionale Attribute:</h4></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr>
+ <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 height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Label:</b> <br>(Wird im Bootmen&uuml; statt Label angezeigt) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menulabel]' value='{MELABEL}' size='50' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Passwd:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menupasswd]' value='{MEPASSWD}' size='50' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Hide:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menuhide]' value='{MEHIDE}' size='50' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Localboot:</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[localboot]' value='{LOCALBOOT}' size='50' class='medium_form_field'>
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>APPEND Parameter:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='80%' 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>Client Konfiguration via: &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[clientconfvia]' value='{CCV}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>vga: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[vga]' value='{VGA}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>splash: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[splash]' value='{SPLASH}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>vci: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[vci]' value='{VCI}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>no ldsc: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[noldsc]' value='{NOLDSC}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>elevator: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[elevator]' value='{ELEVATOR}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>apic: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[apic]' value='{APIC}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Union FS: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[unionfs]' value='{UNIONFS}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>cowloop: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[cowloop]' value='{COWLOOP}' size='30' class='medium_form_field'>
+ </td>
+ </tr>
+
+ <input type='hidden' name='typ' value='newme'>
+ <input type='hidden' name='maxpos' value='{MAXPOS}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <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>
+ <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/rbs/new_menuentry.php b/ldap-site-mngmt/webinterface/rbs/new_menuentry.php
new file mode 100644
index 00000000..a6ee6e3e
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_menuentry.php
@@ -0,0 +1,166 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 3;
+$sbmnr = -1;
+$mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "new_menuentry.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$sbmnr = $_GET['sbmnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$mecn = str_replace ( "_", " ", $_GET['mecn']);
+
+$pxeDN = $_GET['dn'];
+$dnexp = ldap_explode_dn($pxeDN, 1);
+$pxecn = $dnexp[0];
+
+# RBS Daten
+$pxe = get_node_data($pxeDN,array("rbservicedn"));
+$rbsDN = $pxe['rbservicedn'];
+$exp = explode(',',$rbsDN);
+$exprbsau = explode('=',$exp[2]); $rbsau = $exprbsau[1];
+$rbsdata = get_node_data($rbsDN,array("cn","nfsserverip","exportpath","tftpserverip","tftppath"));
+
+# Anzahl Menüeinträge
+$menens = get_menuentries($pxeDN,array("dn"));
+$maxpos = count($menens)+1;
+
+# Bootmenu Daten
+$template->assign(array("MECN" => $mecn,
+ "LABEL" => "",
+ "MELABEL" => "",
+ "MEDEF" => "",
+ "MEPASSWD" => "",
+ "MEHIDE" => "",
+ "VGA" => "",
+ "SPLASH" => "",
+ "NOLDSC" => "",
+ "ELEVATOR" => "",
+ "VCI" => "",
+ "CCV" => "",
+ "APIC" => "",
+ "COWLOOP" => "",
+ "UNIONFS" => "",
+ "DEBUG" => "",
+ "LOCALBOOT" => "",
+ "SUBMENULINK" => "",
+ "MENPOS" => "",
+ "MAXPOS" => $maxpos,
+ "PXEDN" => $pxeDN,
+ "PXECN" => $pxecn,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr,
+ "MCNR" => $mcnr));
+
+
+# verwendbare GBMs holen
+# eigene AU (andere noch über "offer" Attribut in RBS suchen)
+$attributes = array("dn","cn","label","kernel","initrd","nfsroot","nbdroot","ipappend");
+$gbm_array = get_menuentries($rbsDN,$attributes);
+if (count($gbm_array) != 0){
+$template->define_dynamic("Gbms", "Webseite");
+ foreach ($gbm_array as $item){
+ $template->assign(array("GBMDN" => $item['dn'],
+ "GBMCN" => $item['cn'],
+ "GBMLABEL" => $item['label'],
+ "RBSAU" => $rbsau));
+ $template->parse("GBMS_LIST", ".Gbms");
+ }
+}else{
+ $template->assign(array("GBMDN" => "",
+ "GBMCN" => "Keine generischen Boot Images verf&uuml;gbar",
+ "GBMLABEL" => "Keine generischen Boot Images verf&uuml;gbar",
+ "RBSAU" => ""));
+}
+
+
+# Alternative RB Dienste holen
+$altrbs = get_rbservices($auDN,array("dn","cn"));
+if (count($altrbs) != 0){
+ for ($i=0; $i < count($altrbs); $i++){
+ if ($rbsDN == $altrbs[$i]['dn']){
+ array_splice($altrbs, $i, 1);
+ }
+ }
+}
+
+
+if (count($altrbs) != 0){
+$template->define_dynamic("Altrbs", "Webseite");
+ foreach ($altrbs as $item){
+ $altrbsexp = explode(',',$item['dn']);
+ $altrbsau = explode('=',$altrebsexp[2]);
+ $template->assign(array("ALTRBSDN" => $item['dn'],
+ "ALTRBSCN" => $item['cn'],
+ "ALTRBSAU" => "[ ".$altrbsau[1]." ]"));
+ $template->parse("ALTRBS_LIST", ".Altrbs");
+ }
+}else{
+ $template->assign(array("ALTRBSDN" => "",
+ "ALTRBSCN" => "",
+ "ALTRBSAU" => ""));
+}
+
+################################################
+# Bootmenü Einträge
+
+$menuentries = get_menuentries($pxeDN,array("dn","menuposition","label","menulabel"));
+#print_r($menuentries); echo "<br>";
+
+$template->define_dynamic("Bootmenu", "Webseite");
+
+foreach ($menuentries as $me){
+ $template->assign(array("MENDN" => $me['dn'],
+ "MENULABEL" => $me['menulabel'],
+ "POSITION" => $me['menuposition'],
+ "AUDN" => $auDN));
+ $template->parse("BOOTMENU_LIST", ".Bootmenu");
+}
+
+
+################################################
+# 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");
+}
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?>
diff --git a/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt
new file mode 100644
index 00000000..c97324b5
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.dwt
@@ -0,0 +1,157 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Neues DEFAULT PXE Boot Men&uuml; anlegen:</h3></td>
+ </tr>
+ <tr>
+ <td height='10'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Allgemein:</h4></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='pxe_add.php' method='post'>
+ <tr>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'><b>Eindeutiger Name (cn):</b><br>(Bitte ohne Leerzeichen eingeben) &nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'>
+ <font size='+2'><b>PXE_</b></font><input type='Text' name='pxecn' value='{PXECN}' size='50' class='medium_form_field'>
+ </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&auml;hlen: </b>&nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='rbs' size='5' class='medium_form_selectbox'>
+ <option selected value='none'>----------</option>
+
+ <!-- BEGIN DYNAMIC BLOCK: Altrbs -->
+ <option value='{ALTRBSDN}'>{ALTRBSCN} {ALTRBSAU}</option>
+ <!-- END DYNAMIC BLOCK: Altrbs -->
+
+ </select>
+ </td>
+ </tr>
+ <tr valign='top'>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>G&uuml;ltigkeitsdauer <br>(Time Range): </b>&nbsp;</td>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='pxeday' value='{PXEDAY}' size='5' maxlength='5' class='medium_form_field'>
+ &nbsp;<br>
+ Eines der folgenden:<br>
+
+ - <b>Datum</b> &nbsp;(Format: dd.mm, z.B. 21.03/01.11) <br>
+ - <b>Monatstag</b> &nbsp;(Format: dd, z.B. 01 oder 25) <br>
+ - <b>Wochentag</b> &nbsp;(Format: MO, DI, ... , SO) <br>
+ - <b>X</b> f&uuml;r <b>t&auml;glich</b>
+
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='pxebeg' value='{PXEBEG}' size='2' maxlength='2' class='medium_form_field'>
+ <b><font size='+1'>:00</b> &nbsp;- &nbsp;</font>
+ <input type='Text' name='pxeend' value='{PXEEND}' size='2' maxlength='2' class='medium_form_field'>
+ <b><font size='+1'>:59</b> Uhr</font><br>
+ - <b>Uhrzeit</b> &nbsp;(Format: hh, z.B. 07-19)<br>
+ - <b>X</b> f&uuml;r rund um die Uhr
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Globale PXE Parameter:</h4></td>
+ </tr>
+
+ <tr><td>
+ <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>
+ </tr>
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Default: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Title: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menutitle]' value='{MENTIT}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menutitle]' value='{MENTIT}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Master Passwd: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Timeout: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>No Escape: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Prompt: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Allow Options: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>On Error: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>ON Timeout: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Client-Conf Dateiname <br>(File URI): &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='conffile' value='{FILEURI}' size='50' class='medium_form_field'>
+ &nbsp;
+ </td>
+ </tr>
+
+ <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>
+ <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/rbs/new_pxe.php b/ldap-site-mngmt/webinterface/rbs/new_pxe.php
new file mode 100644
index 00000000..9a6afba0
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_pxe.php
@@ -0,0 +1,95 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = -1;
+$sbmnr = -1;
+$mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "new_pxe.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+$mcnr = $_GET['mcnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$pxecn = str_replace ( "_", " ", $_GET['pxecn']);
+$pxeday = str_replace ( "_", " ", $_GET['pxeday']);
+$pxebeg = str_replace ( "_", " ", $_GET['pxebeg']);
+$pxeend = str_replace ( "_", " ", $_GET['pxeend']);
+
+$template->assign(array("PXECN" => $pxecn,
+ "PXEDAY" => $pxeday,
+ "PXEBEG" => $pxebeg,
+ "PXEEND" => $pxeend,
+ "LDAPURI" => "",
+ "FILEURI" => "",
+ "RBS" => "",
+ "RBSAU" => "",
+ "NFS" => "",
+ "NFSROOT" => "",
+ "TFTP" => "",
+ "TFTPROOT" => "",
+ "FILE" => "",
+ "ALLOW" => "",
+ "CONSOLE" => "",
+ "DEFAULT" => "menu.c32",
+ "DISPLAY" => "",
+ "FONT" => "",
+ "IMPLICIT" => "",
+ "KBDMAP" => "",
+ "MENMPW" => "",
+ "MENTIT" => "",
+ "NOESC" => "1",
+ "ONERR" => "",
+ "ONTIME" => "",
+ "PROMPT" => "0",
+ "SAY" => "",
+ "SERIAL" => "",
+ "TIMEOUT" => "600",
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr));
+
+#############################################
+# RB Dienste holen
+$rbsoffers = get_rbsoffers($auDN);
+
+$template->assign(array("ALTRBSDN" => "",
+ "ALTRBSCN" => "",
+ "ALTRBSAU" => ""));
+
+if (count($rbsoffers) != 0){
+$template->define_dynamic("Altrbs", "Webseite");
+ foreach ($rbsoffers as $item){
+ $rbsdnexp = ldap_explode_dn($item,1);
+ $rbsoffcn = $rbsdnexp[0];
+ $rbsoffau = $rbsdnexp[2];
+ #$auexp = explode(',',$item['auDN']);
+ #$altrbsau = explode('=',$auexp[0]);
+ $template->assign(array("ALTRBSDN" => $item,
+ "ALTRBSCN" => $rbsoffcn,
+ "ALTRBSAU" => " &nbsp;&nbsp;[ Abt.: ".$rbsoffau." ]"));
+ $template->parse("ALTRBS_LIST", ".Altrbs");
+ }
+}
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/new_rbservice.dwt b/ldap-site-mngmt/webinterface/rbs/new_rbservice.dwt
new file mode 100644
index 00000000..52e693b5
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_rbservice.dwt
@@ -0,0 +1,117 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Remote Boot Service anlegen</h3></td>
+ </tr>
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='rbservice_add.php' method='post'>
+
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger RBS Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+2'><b>RBS_</b></font><input type='Text' name='rbscn' value='{RBSCN}' size='40' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr height='50' valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <b>Wer soll Dienst nutzen d&uuml;rfen:</b><br>(W&auml;hlen Sie eine Abteilung,<br>
+ impliziert alle Unterabteilungen)
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='rbsoffer' size='4' class='medium_form_selectbox'>
+ <option selected value='{OFFERSELF}'>------ {SELFOU} ------</option>
+
+ <!-- BEGIN DYNAMIC BLOCK: Rbsoffers -->
+ <option value='{RBSOFFER}'>{RBSOFFEROU}</option>
+ <!-- END DYNAMIC BLOCK: Rbsoffers -->
+
+ </select>
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Boot Server System:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr valign='top'>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server</b></td>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>IP Adresse eingeben</b> oder<br><b>Rechner ausw&auml;hlen</b></td>
+ <td width='50%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Pfad</b> <br>(auf dem jeweiligen Server)</td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>TFTP Server: &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='tftpserverip' value='' size='20' class='medium_form_field'>
+ <select name='tftpserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: TftpHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: TftpHosts -->
+ </select>
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ Initial Boot File <input type='Text' name='attribs[initbootfile]' value='{INITBOOTFILE}' size='25' class='medium_form_field'><br>
+ Kernel Path <input type='Text' name='attribs[tftpkernelpath]' value='{TFTPKERNEL}' size='25' class='medium_form_field'><br>
+ PXE Path<input type='Text' name='attribs[tftppxepath]' value='{TFTPPXE}' size='25' class='medium_form_field'><br>
+ Clientconf Path<input type='Text' name='attribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}' size='25' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>NFS Server: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='nfsserverip' value='' size='20' class='medium_form_field'>
+ <select name='nfsserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: NfsHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: NfsHosts -->
+ </select>
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[exportpath]' value='{NFSPATH}' size='25' class='medium_form_field'>
+ </td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>NBD Server: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='nbdserverip' value='' size='20' class='medium_form_field'>
+ <select name='nbdserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: NbdHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: NbdHosts -->
+ </select>
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ </tr>
+
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+
+ </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/rbs/new_rbservice.php b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php
new file mode 100644
index 00000000..020e3254
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/new_rbservice.php
@@ -0,0 +1,107 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 0;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "new_rbservice.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+# nochmal zur Sicherheit: falls doch RBS angelegt
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+if (count($rbs_array) != 0){
+ $url = "rbservice.php?mnr=1";
+ $seconds = 1;
+ $mesg .= "<br>Sie werden automatisch auf die n&auml;chste Seite geleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>hier</a>";
+ redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+}
+
+$rbscn = str_replace ( "_", " ", $_GET['rbscn']);
+$template->assign(array("RBSCN" => $rbscn,
+ "TFTP" => "",
+ "TFTPIP" => "",
+ "INITBOOTFILE" => "",
+ "TFTPKERNEL" => "",
+ "TFTPPXE" => "",
+ "TFTPCLIENTCONF" => "",
+ "NFS" => "",
+ "NFSIP" => "",
+ "NFSPATH" => "",
+ "NBD" => "",
+ "NBDIP" => "",
+ "HDN" => "",
+ "HN" => "",
+ "IP" => "",
+ "OFFERSELF" => $auDN,
+ "SELFOU" => $au_ou,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr));
+
+
+# RBS Anbieten (ausser eigene AU)
+$expdn = ldap_explode_dn($auDN, 0); # Mit Merkmalen
+$expdn = array_slice($expdn, 2);
+$expou = ldap_explode_dn($auDN, 1); # nur Werte
+$expou = array_slice($expou, 2, -3);
+#print_r($expou); echo "<br>";
+#print_r($expdn); echo "<br>";
+for ($i=0; $i<count($expou); $i++){
+ $rbsoffers[$i]['ou'] = $expou[$i];
+ $rbsoffers[$i]['dn'] = implode(',',$expdn);
+ $expdn = array_slice($expdn, 1);
+}
+#print_r($rbsoffers);
+
+$template->define_dynamic("Rbsoffers", "Webseite");
+foreach ($rbsoffers as $offer){
+ $template->assign(array("RBSOFFER" => $offer['dn'],
+ "RBSOFFEROU" => $offer['ou'],));
+ $template->parse("RBSOFFERS_LIST", ".Rbsoffers");
+}
+
+### Rechner
+$hostorgroup = $exp[0];
+$hosts_array = get_hosts($auDN,array("dn","hostname","ipaddress"));
+
+$template->define_dynamic("TftpHosts", "Webseite");
+$template->define_dynamic("NfsHosts", "Webseite");
+$template->define_dynamic("NbdHosts", "Webseite");
+foreach ($hosts_array as $item){
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("TFTPHOSTS_LIST", ".TftpHosts");
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("NFSHOSTS_LIST", ".NfsHosts");
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("NBDHOSTS_LIST", ".NbdHosts");
+}
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/no_rbservice.dwt b/ldap-site-mngmt/webinterface/rbs/no_rbservice.dwt
new file mode 100644
index 00000000..2d7c1a87
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/no_rbservice.dwt
@@ -0,0 +1,22 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Remote Boot Service </h3>
+
+ <p>Sie haben noch keinen <b>Remote Boot Service</b> eingerichtet.</p>
+
+ <p>Um</p>
+
+ <ul>
+ <li><p><b>Generische Boot Men&uuml;s</b></p></li>
+ <li><p><b>Default PXE Bootmen&uuml;s</b></p></li>
+ </ul>
+
+ <p>anlegen zu k&ouml;nnen muss erst ein Remote Boot Service eingerichtet werden.</p>
+
+ <p>Verwenden sie daf&uuml;r den Link <b>"Remote Boot Service"</b> im Navigationsmen&uuml; links, um
+ zur Eingabemaske zu gelangen.</p>
+
+ </td>
+ </tr>
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/no_rbservice.php b/ldap-site-mngmt/webinterface/rbs/no_rbservice.php
new file mode 100644
index 00000000..657e3738
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/no_rbservice.php
@@ -0,0 +1,32 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 1;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "no_rbservice.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.dwt b/ldap-site-mngmt/webinterface/rbs/pxe.dwt
new file mode 100644
index 00000000..4ce35565
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe.dwt
@@ -0,0 +1,453 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>PXE Boot Men&uuml; &nbsp;<code class='font_object'> {PXECN} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'>Klicken Sie auf einen Men&uuml;eintrag um zur Detailansicht zu gelangen und den Eintrag bearbeiten zu k&ouml;nnen</td>
+ </tr>
+ <tr>
+ <td>
+ <table cellpadding='7' cellspacing='0' border='0' align='left' width='80%' style='border-color: black; border-style: solid; border-width: 2 2 2 2;'>
+
+ <tr>
+ <td width='8%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>#</td>
+ <td width='8%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>Flags</td>
+ <td width='64%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>Menu Label&nbsp;</td>
+ <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>&nbsp;</td>
+ <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>&nbsp;</td>
+ </tr>
+
+ <!-- BEGIN DYNAMIC BLOCK: Bootmenu -->
+ <form action='delete_confirm.php' method='post'>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;{BGCDEF}'>{POSITION}&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;{BGCDEF}'>{MEDEF} {MEPWD} {MEHIDE}&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;{BGCDEF}'><font size='+1'>{ANZEIGE}&nbsp;</font></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;{BGCDEF}'>
+ <a href='menuposition_up.php?dn={MENDN}&pos={POSITION}&pxedn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'><img style='border-width:0;border-style=none;' src='../pics/up2.gif' height='15'></a> <br>
+ <a href='menuposition_down.php?dn={MENDN}&pos={POSITION}&pxedn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'><img style='border-width:0;border-style=none;' src='../pics/down2.gif' height='15'></a></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;{BGCDEF}'>
+ <input type='hidden' name='dn' value='{MENDN}'>
+ <input type='hidden' name='name' value='{ANZEIGENAME}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='delurl' value='menuentry_delete.php'>
+ <input type='hidden' name='successurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'>
+ <input type='hidden' name='backurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'>
+ </tr>
+ </form>
+ <!-- END DYNAMIC BLOCK: Bootmenu -->
+
+ </table></td>
+ </tr>
+ <tr>
+ <td><h4>Flags:</h4></font>
+ <ul>
+ <li><b>D</b> -> Default Men&uuml;eintrag</li>
+ <li><b>P</b> -> Passwort gesch&uuml;tzt</li>
+ <li><b>H</b> -> Hidden</li>
+ </ul>
+ </td>
+ </tr>
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Neuen Men&uuml;eintrag anlegen: &nbsp;&nbsp;</h4>
+ <a href='new_menuentry.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}' style='color:#FFFFFF;' class='small_loginform_button'>&nbsp; zur Eingabemaske &nbsp;</a> </td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Standard Men&uuml;eintr&auml;ge anlegen:</h4></td>
+ </tr>
+ <tr>
+ <td>
+ <table cellpadding='7' cellspacing='0' border='0' align='left' width='90%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+
+ <tr>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>Typ &nbsp;</td>
+ <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>&nbsp;</td>
+ <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>&nbsp;</td>
+ <td width='10%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>Position</td>
+ <td width='10%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'>&nbsp;</td>
+ </tr>
+ <tr valign='top'>
+ <form action='menuentry_add.php' method='post'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Localboot</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ Menu Label<br><input type='Text' name='locallabel' value='' size='20' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ Passwort (optional)<br><input type='Text' name='localpasswd' value='' size='20' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Text' name='localpos' value='{MAXPOS}' size='2' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Submit' name='apply' value='anlegen' class='small_loginform_button'></td>
+ <input type='hidden' name='typ' value='local'>
+ <input type='hidden' name='maxpos' value='{MAXPOS}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='timerange' value='{TIMERANGE}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+ <input type='hidden' name='mcnr' value='{MCNR}'>
+ </form>
+ </tr>
+ <tr valign='top'>
+ <form action='menuentry_add.php' method='post'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Textzeile</b> &nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Text' name='text' value='TEXT' size='50' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Text' name='textpos' value='{MAXPOS}' size='2' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Submit' name='apply' value='anlegen' class='small_loginform_button'></td>
+ <input type='hidden' name='typ' value='text'>
+ <input type='hidden' name='maxpos' value='{MAXPOS}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='timerange' value='{TIMERANGE}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+ <input type='hidden' name='mcnr' value='{MCNR}'>
+ </form>
+ </tr>
+ <tr valign='top'>
+ <form action='menuentry_add.php' method='post'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Leerzeile</b> &nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Text' name='leerpos' value='{MAXPOS}' size='2' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Submit' name='apply' value='anlegen' class='small_loginform_button'></td>
+ <input type='hidden' name='typ' value='leer'>
+ <input type='hidden' name='maxpos' value='{MAXPOS}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='timerange' value='{TIMERANGE}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+ <input type='hidden' name='mcnr' value='{MCNR}'>
+ </form>
+ </tr>
+ <tr valign='top'>
+ <form action='menuentry_add.php' method='post'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Verweis zu Submen&uuml;</b> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Submen&uuml; Name<br>
+ <input type='Text' name='submenu' value='' size='20' class='medium_form_field'></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Remote Boot Service
+ <select name='subrbs' size='3' class='small_form_selectbox'>
+ <option selected value='none'>----------</option>
+ <!-- BEGIN DYNAMIC BLOCK: Subrbs -->
+ <option value='{SUBRBSDN}'>{SUBRBSCN} {SUBRBSAU}</option>
+ <!-- END DYNAMIC BLOCK: Subrbs -->
+ </select>
+ </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Text' name='submenupos' value='{MAXPOS}' size='2' class='medium_form_field'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><input type='Submit' name='apply' value='anlegen' class='small_loginform_button'></td>
+ <input type='hidden' name='typ' value='submenu'>
+ <input type='hidden' name='maxpos' value='{MAXPOS}'>
+ <input type='hidden' name='pxedn' value='{PXEDN}'>
+ <input type='hidden' name='timerange' value='{TIMERANGE}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+ <input type='hidden' name='mcnr' value='{MCNR}'>
+ </form>
+ </tr>
+
+ </table></td>
+ </tr>
+
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Allgemeine Parameter:</h4></td>
+ </tr>
+ <tr><td>
+ <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) &nbsp;</td>
+ <td width='5%' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'>&nbsp;</td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 3 0 1 0;'>
+ <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}'> &nbsp;
+ </td>
+ </tr>
+
+ <tr valign='top'>
+ <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>G&uuml;ltigkeitsdauer <br>(Time Range(s)): </b><br>
+ Zum L&ouml;schen einer Time Range<br>H&auml;kchen setzen&nbsp;</td>
+ <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ Eines der folgenden:<br>
+
+ - <b>Datum</b> &nbsp;(dd.mm, z.B. 21.03/01.11) <br>
+ - <b>Monatstag</b> &nbsp;(dd, z.B. 01 oder 25) <br>
+ - <b>Wochentag</b> &nbsp;(MO, DI, ... , SO) <br>
+ - <b>X</b> f&uuml;r <b>t&auml;glich</b>
+
+ <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ - <b>Uhrzeit</b> &nbsp;(Format: hh, z.B. 07-19)<br>
+ - <b>X</b> f&uuml;r rund um die Uhr
+
+ </td>
+ </tr>
+
+ <!-- BEGIN DYNAMIC BLOCK: TRanges -->
+ <tr valign='top'>
+ <td width='25%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='checkbox' name='deltr[]' value='{PXEDAY}_{PXEBEG}_{PXEEND}'>
+ &nbsp;</td>
+ <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='pxeday[]' value='{PXEDAY}' size='5' maxlength='5' class='medium_form_field'>
+ <input type='hidden' name='oldpxeday[]' value='{PXEDAY}'> &nbsp;<br>
+
+
+ <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <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> &nbsp;- &nbsp;</font>
+ <input type='Text' name='pxeend[]' value='{PXEEND}' size='2' maxlength='2' class='medium_form_field'>
+ <input type='hidden' name='oldpxeend[]' value='{PXEEND}'> <b><font size='+1'>:59</b> Uhr</font><br>
+ </td>
+ </tr>
+ <!-- END DYNAMIC BLOCK: TRanges -->
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Neue Time Range hinzuf&uuml;gen&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <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;'>
+ <input type='Text' name='newpxebeg' value='' size='2' maxlength='2' class='medium_form_field'>
+ <b><font size='+1'>:00</b> &nbsp;- &nbsp;</font>
+ <input type='Text' name='newpxeend' value='' size='2' maxlength='2' class='medium_form_field'>
+ <b><font size='+1'>:59</b> Uhr</font><br>
+
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+
+
+
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Globale PXE Parameter:</h4></td>
+ </tr>
+
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='80%' 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>Default: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Title: </b>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[menutitle]' value='{MENTIT}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[menutitle]' value='{MENTIT}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Menu Master Passwd: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Timeout: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>No Escape: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Prompt: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Allow Options: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>On Error: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>ON Timeout: </b>&nbsp;</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}'> &nbsp;
+ </td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>File URI: &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+1'>tftp://{TFTP}/{TFTPFILE}</font><input type='Text' name='attribs[fileuri]' value='{FILEURI}' size='30' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[fileuri]' value='{FILEURI}'>
+ &nbsp;
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>PXE Dateiname:</h4>
+ Achtung: &Auml;nderungen hier k&ouml;nnen zu nicht verwendeten PXE Dateien f&uuml;hren!<br>
+ Sie sollten hier nur &Auml;nderungen vornehmen, wenn der PXE Datei offensichtlich ein falscher Name zugewiesen ist.<br>
+ Wird z.B. vom betroffenen Rechner die MAC Adresse ge&auml;ndert, so wird dies vom System automatisch an dieser Stelle nachvollzogen.
+ Diese Feld dient daher prim&auml;r der Kontrolle.</td>
+ </tr>
+ <tr>
+ <td>
+ <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&uuml;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}'> &nbsp;
+ <!-- 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='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+ <input type='hidden' name='mcnr' value='{MCNR}'>
+ <input type='Submit' name='apply' value='anwenden' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+ <tr>
+ <td height='50'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>PXE Boot Men&uuml; &nbsp;<code class='font_object'>{PXECN}</code>&nbsp; kopieren:</h4>
+ Beachten Sie, dass die Time Ranges des PXE Boot Men&uuml;s nicht kopiert werden. Sie m&uuml;ssen diese anschlie&szlig;end
+ neu setzen. <br>
+ Geben Sie bitte den eindeutigen Namen des neuen PXE Boot Men&uuml;s an.</td>
+ </tr>
+ <tr>
+ <td>
+ <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&ouml;glich)&nbsp;</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) &nbsp;</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}'> &nbsp;
+ </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>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>PXE Boot Men&uuml; &nbsp;<code class='font_object'>{PXECN}</code>&nbsp; l&ouml;schen:</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='delete_confirm.php' method='post'>
+
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ Die MachineConfig wird komplett gel&ouml;scht.
+ </tr>
+
+ <input type='hidden' name='dn' value='{PXEDN}'>
+ <input type='hidden' name='name' value='{PXECN}'>
+ <input type='hidden' name='delurl' value='pxe_delete.php'>
+ <input type='hidden' name='successurl' value='pxeconfig_default.php?&mnr={MNR}'>
+ <input type='hidden' name='backurl' value='pxe.php?dn={PXEDN}&mnr={MNR}&sbmnr={SBMNR}&mcnr={MCNR}'>
+
+ </table></td>
+ </tr><tr><td>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'>
+ </form></td></tr>
+
+</table>
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe.php b/ldap-site-mngmt/webinterface/rbs/pxe.php
new file mode 100644
index 00000000..85df99ac
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe.php
@@ -0,0 +1,221 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = -1;
+$sbmnr = -1;
+# $mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "pxe.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+$mcnr = $_GET['mcnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$pxeDN = $_GET['dn'];
+
+$attributes = array("dn","cn","rbservicedn","filename","timerange","allowoptions","console","default",
+ "display","font","implicit","kbdmap","menumasterpasswd","menutitle",
+ "noescape","onerror","ontimeout","prompt","say","serial","timeout","ldapuri","fileuri");
+$pxe = get_node_data($pxeDN,$attributes);
+#print_r($pxe);
+
+$exp = explode(',',$pxeDN);
+$node = array_slice($exp,1);
+$nodeDN = implode(',',$node);
+
+# RBS Daten
+$rbsDN = $pxe['rbservicedn'];
+$exp = explode(',',$rbsDN);
+$exprbsau = explode('=',$exp[2]); $rbsau = $exprbsau[1];
+$rbsdata = get_node_data($rbsDN,array("cn","nfsserverip","exportpath","tftpserverip","tftppath","tftpclientconfpath"));
+
+# Timerange Komponenten
+$template->define_dynamic("TRanges", "Webseite");
+if (count($pxe['timerange']) > 1){
+ foreach($pxe['timerange'] as $tr){
+ $exptime = explode('_',$tr);
+ $template->assign(array("PXEDAY" => $exptime[0],
+ "PXEBEG" => $exptime[1],
+ "PXEEND" => $exptime[2]));
+ $template->parse("TRANGES_LIST", ".TRanges");
+ }
+}else{
+ $exptime = explode('_',$pxe['timerange']);
+ $template->assign(array("PXEDAY" => $exptime[0],
+ "PXEBEG" => $exptime[1],
+ "PXEEND" => $exptime[2]));
+ $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'],
+ "RBS" => $rbsdata['cn'],
+ "RBSAU" => $rbsau,
+ "NFS" => $rbsdata['nfsserverip'],
+ "NFSROOT" => $rbsdata['exportpath'],
+ "TFTP" => $rbsdata['tftpserverip'],
+ "TFTPROOT" => $rbsdata['tftppath'],
+ "TFTPFILE" => $rbsdata['tftpclientconfpath'],
+ #"LDAP" => LDAP_HOST,
+ #"LDAPURI" => $pxe['ldapuri'],
+ "FILEURI" => $pxe['fileuri'],
+ "FILE" => $pxe['filename'],
+ "ALLOW" => $pxe['allowoptions'],
+ "CONSOLE" => $pxe['console'],
+ "DEFAULT" => $pxe['default'],
+ "DISPLAY" => $pxe['display'],
+ "FONT" => $pxe['font'],
+ "IMPLICIT" => $pxe['implicit'],
+ "KBDMAP" => $pxe['kbdmap'],
+ "MENMPW" => $pxe['menumasterpasswd'],
+ "MENTIT" => $pxe['menutitle'],
+ "NOESC" => $pxe['noescape'],
+ "ONERR" => $pxe['onerror'],
+ "ONTIME" => $pxe['ontimeout'],
+ "PROMPT" => $pxe['prompt'],
+ "SAY" => $pxe['say'],
+ "SERIAL" => $pxe['serial'],
+ "TIMEOUT" => $pxe['timeout'],
+ "MAXPOS" => $maxpos,
+ "NODEDN" => $nodeDN,
+ "DEFDN" => $rbsDN,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr,
+ "MCNR" => $mcnr));
+
+# RB Dienste für Submenüeinträge holen
+# kommt wohl wieder raus (->Submenüs nur im eigenen RBS Bereich)
+$subrbs = get_rbsoffers($auDN);
+
+# 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&uuml; 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
+
+$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");
+}
+
+
+# falls TR vorhanden dann soll sie gelöscht werden (flag deltr setzen)
+if (count($pxe['timerange']) != 0){
+ $template->assign(array("DELTR" => "1"));
+}
+else{
+ $template->assign(array("DELTR" => "0"));
+}
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?>
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_add.php b/ldap-site-mngmt/webinterface/rbs/pxe_add.php
new file mode 100644
index 00000000..4b314ab1
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe_add.php
@@ -0,0 +1,118 @@
+<?php
+include('../standard_header.inc.php');
+
+$pxecn = $_POST['pxecn']; $pxecn = htmlentities($pxecn);
+$rbsDN = $_POST['rbs'];
+#print_r($rbsDN);
+$pxeday = $_POST['pxeday']; $pxeday = htmlentities($pxeday);
+$pxebeg = $_POST['pxebeg']; $pxebeg = htmlentities($pxebeg);
+$pxeend = $_POST['pxeend']; $pxeend = htmlentities($pxeend);
+
+$conffile = $_POST['conffile']; $conffile = htmlentities($conffile);
+
+$pxeattribs = $_POST['pxeattribs'];
+if (count($pxeattribs) != 0){
+ foreach (array_keys($pxeattribs) as $key){
+ $pxeatts[$key] = htmlentities($pxeattribs[$key]);
+ }
+}
+# print_r($pxeatts); echo "<br><br>";
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+
+$seconds = 2;
+$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;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $pxecn != "" && $pxecn != "Hier_PXE_NAME_eintragen" && $rbsDN != "none" ){
+
+ $pxecn = "PXE_".$pxecn;
+ # Formulareingaben anpassen
+ $exppxe = explode(" ",$pxecn);
+ foreach ($exppxe as $word){$expuc[] = ucfirst($word);}
+ $pxecn = implode(" ",$expuc);
+ $pxecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $pxecn);
+
+ $pxetimerange = "";
+
+ if ( $pxeday != "" && $pxebeg != "" && $pxeend != "" && $pxebeg <= $pxeend ){
+
+ # TimeRange Syntax checken
+ $syntax = new Syntaxcheck;
+ if ($syntax->check_timerange_syntax($pxeday,$pxebeg,$pxeend)){
+
+ # in Grossbuchstaben
+ if (preg_match("/([a-z]+)/",$pxeday)){$pxeday = strtoupper($pxeday);}
+ if (preg_match("/([a-z]+)/",$pxebeg)){$pxebeg = strtoupper($pxebeg);}
+ if (preg_match("/([a-z]+)/",$pxeend)){$pxeend = strtoupper($pxeend);}
+
+ # führende Nullen weg
+ $pxebeg = preg_replace ( '/0([0-9])/', '$1', $pxebeg);
+ $pxeend = preg_replace ( '/0([0-9])/', '$1', $pxeend);
+
+ # TimeRange auf Überschneidung mit vorhandenen checken
+ if(check_timerange_pxe($pxeday,$pxebeg,$pxeend,$rbsDN,"")){
+ $pxetimerange = $pxeday."_".$pxebeg."_".$pxeend;
+ }
+ else{
+ $mesg = "Es existiert bereits ein PXE Boot Men&uuml;, das sich mit der eingegebenen Time Range
+ &uuml;berschneidet!<br>
+ Das neue PXE Boot Men&uuml; wird ohne Time Range angelegt.<br>
+ Bitte geben Sie diese anschließend ein.<br><br>";
+ }
+ }
+ else{
+ $mesg = "Falsche Syntax in der Time-Range-Eingabe! Das neue PXE Boot Men&uuml; wird ohne Time Range angelegt.<br>
+ Bitte geben Sie diese anschließend ein.<br><br>";
+ }
+ }
+ else{
+ $mesg = "Keine vollst&auml;ndige Time-Range-Eingabe! Das neue PXE Boot Men&uuml; wird ohne Time Range angelegt.<br>
+ Bitte geben Sie diese anschließend ein.<br><br>";
+ }
+
+ $pxeDN = "cn=".$pxecn.",".$rbsDN;
+ $filename = array("default");
+ #$ldapuri = LDAP_HOST."/dn=cn=computers,".$auDN;
+
+ if (add_pxe($pxeDN,$pxecn,$rbsDN,$pxetimerange,$pxeattribs,$filename,$conffile)){
+ $mesg .= "<br>Neues PXE Boot Men&uuml; erfolgreich angelegt<br>";
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+ }
+ else{
+ $mesg .= "<br>Fehler beim anlegen des PXE Boot Men&uuml;s!<br>";
+ }
+}
+
+elseif ( $pxecn == "" || $pxecn == "Hier_PXE_NAME_eintragen" || $rbsDN == "none" ){
+
+ $mesg = "Sie haben den Namen des neuen PXE Boot Men&uuml;s nicht angegeben oder den
+ Remote Boot Dienst nicht ausgew&auml;hlt. Beide sind aber ein notwendige Attribute.<br>
+ Bitte geben Sie sie an.<br><br>";
+ $url = "new_pxe.php?pxecn=Hier_PXE_NAME_eintragen&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr;
+}
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_change.php b/ldap-site-mngmt/webinterface/rbs/pxe_change.php
new file mode 100644
index 00000000..d122a830
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe_change.php
@@ -0,0 +1,434 @@
+<?php
+include('../standard_header.inc.php');
+
+$pxecn = "PXE_".$_POST['pxecn'];
+
+$pxeday = $_POST['pxeday'];
+$pxebeg = $_POST['pxebeg'];
+$pxeend = $_POST['pxeend'];
+foreach (array_keys($pxeday) as $key){
+ $pxeday[$key] = htmlentities($pxeday[$key]);
+}
+foreach (array_keys($pxebeg) as $key){
+ $pxebeg[$key] = htmlentities($pxebeg[$key]);
+}
+foreach (array_keys($pxeend) as $key){
+ $pxeend[$key] = htmlentities($pxeend[$key]);
+}
+
+$deltr = $_POST['deltr'];
+
+$newpxeday = $_POST['newpxeday']; $newpxeday = htmlentities($newpxeday);
+$newpxebeg = $_POST['newpxebeg']; $newpxebeg = htmlentities($newpxebeg);
+$newpxeend = $_POST['newpxeend']; $newpxeend = htmlentities($newpxeend);
+
+$oldpxeday = $_POST['oldpxeday'];
+$oldpxebeg = $_POST['oldpxebeg'];
+$oldpxeend = $_POST['oldpxeend'];
+
+$pxeDN = $_POST['pxedn'];
+$oldpxecn = "PXE_".$_POST['oldpxecn'];
+
+$rbs = $_POST['rbs'];
+$filename = $_POST['filename'];
+if (count($filename) != 0){
+ foreach (array_keys($filename) as $key){
+ $file[$key] = htmlentities($filename[$key]);
+ }
+}
+$oldfilename = $_POST['oldfilename'];
+if (count($oldfilename) != 0){
+ foreach (array_keys($oldfilename) as $key){
+ $oldfile[$key] = htmlentities($oldfilename[$key]);
+ }
+}
+$newfilename = $_POST['newfilename']; $newfilename = htmlentities($newfilename);
+
+$nodeDN = $_POST['nodedn'];
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+# sonstige Attribute
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+#print_r($atts); echo "<br><br>";
+$oldattribs = $_POST['oldattribs'];
+if (count($oldattribs) != 0){
+ foreach (array_keys($oldattribs) as $key){
+ $oldatts[$key] = htmlentities($oldattribs[$key]);
+ }
+}
+#print_r($oldatts); echo "<br><br>";
+
+
+$seconds = 2;
+$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+##############################################
+# PXE CN (DN)
+
+if ( $oldpxecn == $pxecn ){
+ # $mesg = "keine Aenderung<br>";
+}
+
+if ( $oldpxecn != "" && $pxecn != "" && $oldpxecn != $pxecn ){
+ echo "PXE Name aendern<br>";
+ # hier noch Syntaxcheck
+ # Formulareingaben anpassen
+ $exppxe = explode(" ",$pxecn);
+ foreach ($exppxe as $word){$expuc[] = ucfirst($word);}
+ $pxecn = implode(" ",$expuc);
+ $pxecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $pxecn);
+
+ $newpxeDN = "cn=".$pxecn.",".$nodeDN;
+ print_r($newpxeDN); echo "<br><br>";
+
+ if(modify_pxe_dn($pxeDN, $newpxeDN)){
+ $mesg = "PXE Name erfolgreich ge&auml;ndert<br><br>";
+ $pxeDN = $newpxeDN;
+ }else{
+ $mesg = "Fehler beim &auml;ndern des PXE Namen!<br><br>";
+ }
+
+
+ # newsubmenu holen...
+ $url = "pxe.php?dn=".$newpxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+}
+
+if ( $oldpxecn != "" && $pxecn == "" ){
+ echo "Gruppenname loeschen!<br>
+ Dieses ist Teil des DN, Sie werden das PXE Boot Men&uuml; komplett l&ouml;schen<br><br>";
+ echo "Wollen Sie das PXE Boot Men&uuml; <b>".$oldpxecn."</b> wirklich l&ouml;schen?<br><br>
+ <form action='pxe_delete.php' method='post'>
+ Falls ja:<br><br>
+ <input type='hidden' name='dn' value='".$pxeDN."'>
+ <input type='hidden' name='name' value='".$oldpxecn."'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'><br><br>
+ </form>
+ <form action='".$url."' method='post'>
+ Falls, nein:<br><br>
+ <input type='Submit' name='apply' value='zur&uuml;ck' class='small_loginform_button'>
+ </form>";
+ $seconds = 600;
+}
+
+##########################################
+# Remote Boot Dienst
+
+if ($rbs != "none"){
+ $exp = explode(',',$rbs);
+ $exprbscn = explode('=',$exp[0]);
+ $rbscn = $exprbscn[1];
+ $exprbsau = explode('=',$exp[2]);
+ $rbsau = $exprbsau[1];
+
+ $entryrbs ['rbservicedn'] = $rbs;
+ if ($result = ldap_mod_replace($ds,$pxeDN,$entryrbs)){
+ $mesg = "Remote Boot Service erfolgreich zu <b>".$rbscn."[Abt.: ".$rbsau."]</b> ge&auml;ndert<br><br>";
+ }else{
+ $mesg = "Fehler beim &auml;ndern des Remote Boot Services zu <b>".$rbscn."</b>!<br><br>";
+ }
+}
+
+
+##########################################
+# bereits vorhandene TimeRange(s) bearbeiten
+
+$entrymodtr = array();
+$modtr = 0;
+# TimeRanges zusammensetzen
+# $t = 0; # Laufvariable für $entrymodtr, da nicht jede Timerange ok sein muss
+for ($i=0; $i<count($pxeday); $i++){
+
+$oldpxetimerange = $oldpxeday[$i]."_".$oldpxebeg[$i]."_".$oldpxeend[$i];
+
+if ( ($pxebeg[$i] <= $pxeend[$i]) && ( ($pxeday[$i] != $oldpxeday[$i] && $pxeday[$i] != "") || ($pxebeg[$i] != $oldpxebeg[$i] && $pxebeg[$i] != "") || ($pxeend[$i] != $oldpxeend[$i] && $pxeend[$i] != "")) ){
+
+
+ # TimeRange Syntax checken
+ $syntax = new Syntaxcheck;
+ if ($syntax->check_timerange_syntax($pxeday[$i],$pxebeg[$i],$pxeend[$i])){
+
+ # in Grossbuchstaben
+ if (preg_match("/([a-z]+)/",$pxeday[$i])){$pxeday[$i] = strtoupper($pxeday[$i]);}
+ if (preg_match("/([a-z]+)/",$pxebeg[$i])){$pxebeg[$i] = strtoupper($pxebeg[$i]);}
+ if (preg_match("/([a-z]+)/",$pxeend[$i])){$pxeend[$i] = strtoupper($pxeend[$i]);}
+
+ # führende Nullen weg
+ $pxebeg[$i] = preg_replace ( '/0([0-9])/', '$1', $pxebeg[$i]);
+ $pxeend[$i] = preg_replace ( '/0([0-9])/', '$1', $pxeend[$i]);
+
+ # TimeRange auf Überschneidung mit vorhandenen checken außer mit eigener alter TR da diese
+ # ja geändert werden soll
+ if(check_timerange_pxe($pxeday[$i],$pxebeg[$i],$pxeend[$i],$nodeDN,$oldpxetimerange)){
+
+ $pxetimerange = $pxeday[$i]."_".$pxebeg[$i]."_".$pxeend[$i];
+ $entrymodtr ['timerange'][$i] = $pxetimerange;
+ $modtr = 1;
+
+ }
+ else{
+ $mesg = "Es existiert bereits ein PXE Boot Men&uuml;, das sich mit der eingegebenen Time Range
+ &uuml;berschneidet!<br>
+ Bitte geben Sie eine andere Time Range ein.<br><br>";
+ $entrymodtr ['timerange'][$i] = $oldpxetimerange;
+ }
+ }
+ else{
+ $mesg = "Falsche Syntax in der Timerange-Eingabe!<br>
+ Bitte geben Sie die erneut Time Range ein.<br><br>";
+ $entrymodtr ['timerange'][$i] = $oldpxetimerange;
+ }
+
+}
+
+
+elseif ( $pxeday[$i] == "" || $pxebeg[$i] == "" || $pxeend[$i] == "" || $pxebeg[$i] > $pxeend[$i]){
+
+ $mesg = "Sie haben die Time Range <b>Nr.".$i."</b> nicht vollst&auml;ndig angegeben. Diese ist aber ein notwendiges Attribut.<br>
+ Diese Time Range wird nicht bearbeitet.<br><br>";
+ $entrymodtr ['timerange'][$i] = $oldpxetimerange;
+}
+
+else{$entrymodtr ['timerange'][$i] = $oldpxetimerange;}
+} # Ende for-Schleife für jede Timerange
+# jetzt noch alle gesammelten Änderungen Durchführen ...
+if ($modtr == 1){
+ # erst ändern
+ echo "&Auml;ndern: "; print_r($entrymodtr); echo "<br>";
+ if($result = ldap_mod_replace($ds,$pxeDN,$entrymodtr)){
+ $mesg = "TimeRanges erfolgreich ge&auml;ndert<br><br>";
+ }else{
+ $mesg = "Fehler beim &auml;ndern der TimeRanges!<br><br>";
+ }
+}
+
+
+if ( count($deltr) != 0 && $modtr == 0 ){
+ # Time Range löschen
+ $j = 0;
+ foreach ($deltr as $delrange){
+ $entrydeltr ['timerange'][$j] = $delrange;
+ $j++;
+ }
+ # dann löschen
+ echo "L&ouml;schen: "; print_r($entrydeltr); echo "<br>";
+ if($result = ldap_mod_del($ds,$pxeDN,$entrydeltr)){
+ $mesg = "TimeRanges erfolgreich gel&ouml;scht<br><br>";
+ }else{
+ $mesg = "Fehler beim l&ouml;schen der TimeRanges!<br><br>";
+ }
+}elseif(count($deltr) != 0 && $modtr == 1){
+ echo "Nur &Auml;ndern (gleichzeitig L&ouml;schen und &Auml;ndern geht nicht)";
+}
+
+#####################################
+# TimeRange hinzufügen
+
+if ( $newpxeday != "" && $newpxebeg != "" && $newpxeend != "" && $newpxebeg <= $newpxeend ){
+
+ # TimeRange Syntax checken
+ $syntax = new Syntaxcheck;
+ if ($syntax->check_timerange_syntax($newpxeday,$newpxebeg,$newpxeend)){
+
+ # in Grossbuchstaben
+ if (preg_match("/([a-z]+)/",$newpxeday)){$newpxeday = strtoupper($newpxeday);}
+ if (preg_match("/([a-z]+)/",$newpxebeg)){$newpxebeg = strtoupper($newpxebeg);}
+ if (preg_match("/([a-z]+)/",$newpxeend)){$newpxeend = strtoupper($newpxeend);}
+
+ # führende Nullen weg
+ $newpxebeg = preg_replace ( '/0([0-9])/', '$1', $newpxebeg);
+ $newpxeend = preg_replace ( '/0([0-9])/', '$1', $newpxeend);
+
+ # TimeRange auf Überschneidung mit vorhandenen checken
+ if(check_timerange_pxe($newpxeday,$newpxebeg,$newpxeend,$nodeDN,"")){
+
+ $newpxetimerange = $newpxeday."_".$newpxebeg."_".$newpxeend;
+ $entrytr ['timerange'] = $newpxetimerange;
+ if($result = ldap_mod_add($ds,$pxeDN,$entrytr)){
+ $mesg = "Zus&auml;tzliche TimeRange erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der zus&auml;tzlichen TimeRange!<br><br>";
+ }
+ }else{
+ $mesg = "Es existiert bereits ein PXE Boot Men&uuml;, das sich mit der eingegebenen Time Range
+ &uuml;berschneidet!<br>
+ Bitte geben Sie eine andere Time Range ein.<br><br>";
+ }
+ }else{
+ $mesg = "Falsche Syntax in der Timerange-Eingabe!<br>
+ Bitte geben Sie die erneut Time Range ein.<br><br>";
+ }
+}
+
+
+#####################################
+# PXE Filename(s)
+
+$filemod = array();
+$modfi = 0;
+$filedel = array();
+$delfi = 0;
+$j = 0;
+
+if (count($file) != 0){
+
+for ($i=0; $i<count($file); $i++){
+
+ if ( $oldfile[$i] == $file[$i] ){
+ $filemod ['filename'][$i] = $oldfile[$i];
+ # $mesg = "keine Aenderung<br>";
+ }
+
+ if ( $oldfile[$i] != "" && $file[$i] != "" && $oldfile[$i] != $file[$i] ){
+ echo "PXE Dateinamen aendern<br>
+ Vorsicht dies kann eine nicht verwendbare PXE Datei zur Folge haben!<br><br>";
+ # hier noch Syntaxcheck
+ $filemod ['filename'][$i] = $file[$i];
+ $modfi = 1;
+ }
+
+ if ( $oldfile[$i] != "" && $file[$i] == "" ){
+ echo "PXE Dateinamen loeschen!<br>
+ Achtung: aus ihren PXE Daten wird keine PXE Datei mehr generiert.<br>
+ Sie sind solange nicht mehr f&uuml;r den PXE Bootvorgang verwendbar bis Sie einen neuen Dateinamen anlegen!<br><br>";
+ $filemod ['filename'][$i] = $oldfile[$i];
+ $filedel ['filename'][$j] = $oldfile[$i];
+ $j++;
+ $delfi = 1;
+ $seconds = 4;
+ }
+}
+#erst ändern
+if ($modfi == 1){
+ echo "&Auml;ndern: "; print_r($filemod); echo "<br>";
+ if(ldap_mod_replace($ds,$pxeDN,$filemod)){
+ $mesg = "PXE Dateiname(n) erfolgreich ge&auml;ndert<br><br>";
+ }else{
+ $mesg = "Fehler beim &auml;ndern des(r) PXE Dateinamens!<br><br>";
+ }
+ $modfi = 0;
+}
+# dann löschen
+if ($delfi == 1){
+ echo "L&ouml;schen: "; print_r($filedel); echo "<br>";
+ if(ldap_mod_del($ds,$pxeDN,$filedel)){
+ $mesg = "PXE Dateiname(n) erfolgreich gel&ouml;scht<br><br>";
+ }else{
+ $mesg = "Fehler beim l&ouml;schen des PXE Dateinamens !<br><br>";
+ }
+ $delfi = 0;
+}
+
+}
+
+# PXE Dateiname neu anlegen
+if ($newfilename == ""){
+}
+if ($newfilename != ""){
+ echo "PXE Dateiname hinzuf&uuml;gen";
+ $fileadd ['filename'] = $newfilename;
+ if(ldap_mod_add($ds,$pxeDN,$fileadd)){
+ $mesg = "PXE Dateiname <b>".$newfilename."</b> erfolgreich angelegt<br><br>";
+ }else{
+ $mesg = "Fehler beim anlegen des PXE Dateinamens ".$newfilename." !<br><br>";
+ }
+}
+
+
+##################################################################
+# Restliche Attribute
+
+$entryadd = array();
+$entrymod = array();
+$entrydel = array();
+
+foreach (array_keys($atts) as $key){
+
+ if ( $oldatts[$key] == $atts[$key] ){
+
+ }
+ if ( $oldatts[$key] == "" && $atts[$key] != "" ){
+ # hier noch Syntaxcheck
+ $entryadd[$key] = $atts[$key];
+ }
+ if ( $oldatts[$key] != "" && $atts[$key] != "" && $oldatts[$key] != $atts[$key] ){
+ # hier noch Syntaxcheck
+ $entrymod[$key] = $atts[$key];
+ }
+ if ( $oldatts[$key] != "" && $atts[$key] == "" ){
+ # hier noch Syntaxcheck
+ $entrydel[$key] = $oldatts[$key];
+ }
+}
+
+#print_r($entryadd); echo "<br>";
+#print_r($entrymod); echo "<br>";
+#print_r($entrydel); echo "<br>";
+
+
+if (count($entryadd) != 0 ){
+ #print_r($entryadd); echo "<br>";
+ #echo "neu anlegen<br>";
+ foreach (array_keys($entryadd) as $key){
+ $addatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_add($ds,$pxeDN,$entryadd)){
+ $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>";
+ }
+}
+
+if (count($entrymod) != 0 ){
+ #print_r($entrymod); echo "<br>";
+ #echo "&auml;ndern<br>";
+ foreach (array_keys($entrymod) as $key){
+ $modatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_replace($ds,$pxeDN,$entrymod)){
+ $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>";
+ }else{
+ $mesg = "Fehler beim aendern der Attribute ".$modatts."<br><br>";
+ }
+}
+
+if (count($entrydel) != 0 ){
+ #print_r($entrydel); echo "<br>";
+ #echo "l&ouml;schen<br>";
+ foreach (array_keys($entrydel) as $key){
+ $delatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_del($ds,$pxeDN,$entrydel)){
+ $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>";
+ }else{
+ $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>";
+ }
+}
+
+
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_copy.php b/ldap-site-mngmt/webinterface/rbs/pxe_copy.php
new file mode 100644
index 00000000..92e6ba0b
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe_copy.php
@@ -0,0 +1,189 @@
+<?php
+include('../standard_header.inc.php');
+
+$pxeDN = $_POST['pxedn'];
+$pxecn = "PXE_".$_POST['pxecncp'];
+$oldpxecn = "PXE_".$_POST['oldpxecncp'];
+
+$deltr = $_POST['deltr'];
+
+$oldpxeday = $_POST['oldpxedaycp']; $oldpxeday = htmlentities($oldpxeday);
+$oldpxebeg = $_POST['oldpxebegcp']; $oldpxebeg = htmlentities($oldpxebeg);
+$oldpxeend = $_POST['oldpxeendcp']; $oldpxeend = htmlentities($oldpxeend);
+
+$nodeDN = $_POST['nodedn'];
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+$copytargets = $_POST['copytargets'];
+#print_r($copytargets); echo "<br>";
+$n = array_keys($copytargets,'none');
+#print_r($n); echo "<br>";
+for ($i=0; $i<count($n); $i++){
+ $match = array_search('none',$copytargets);
+ array_splice($copytargets, $match, 1);
+}
+#print_r($copytargets); echo "<br>";
+
+
+$seconds = 2;
+$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $pxecn != ""){
+
+ # Formulareingaben anpassen
+ $exppxe = explode(" ",$pxecn);
+ foreach ($exppxe as $word){$expuc[] = ucfirst($word);}
+ $pxecn = implode(" ",$expuc);
+ $pxecn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $pxecn);
+
+ $nomac = 0;
+
+ if (count($copytargets) != 0){
+ foreach ($copytargets as $targetDN){
+
+ $exptargetdn = ldap_explode_dn($targetDN, 1);
+ $targetcn = $exptargetdn[0];
+ $targettype = $exptargetdn[1];
+
+ # falls Target keine MAC hat dann kann keine PXE angelegt werden
+ if ($targettype == "computers"){
+ $macdata = get_node_data($targetDN, array("hwaddress"));
+ if ($macdata['hwaddress'] == ""){
+ $nomac = 1;
+ echo "F&uuml;r den Ziel-Rechner ist keine MAC Adresse eingetragen <br>
+ Das PXE Bootmen&uuml; wird nicht angelegt. <br>
+ <br>
+ Tragen Sie zuerst eine MAC ein!<br><br>";
+ }
+ }
+ if ($targettype == "groups"){
+ $members = get_node_data($targetDN, array("member"));
+ if (count($members) > 1){
+ foreach ($members['member'] as $hostDN){
+ $macdata = get_node_data($hostDN, array("hwaddress","hostname"));
+ if ($macdata['hwaddress'] == ""){
+ $nomac = 1;
+ echo "F&uuml;r den Gruppen-Rechner <b>".$macdata['hostname']."</b> ist keine MAC Adresse eingetragen <br>
+ Das PXE Bootmen&uuml; f&uuml;r die Gruppe wird nicht angelegt. <br>
+ <br>
+ Tragen Sie zuerst bei Rechner <b>".$macdata['hostname']."</b> eine MAC ein!<br><br>";
+ }
+ }
+ }
+ if (count($members) == 1){
+ $macdata = get_node_data($members['member'], array("hwaddress"));
+ if ($macdata['hwaddress'] == ""){
+ $nomac = 1;
+ echo "F&uuml;r den Gruppen-Rechner <b>".$macdata['hostname']."</b> ist keine MAC Adresse eingetragen <br>
+ Das PXE Bootmen&uuml; f&uuml;r die Gruppe wird nicht angelegt. <br>
+ <br>
+ Tragen Sie zuerst bei Rechner <b>".$macdata['hostname']."</b> eine MAC ein!<br><br>";
+ }
+ }
+ }
+
+ $brothers = get_pxeconfigs($targetDN,array("cn"));
+ $brother = 0;
+ foreach ($brothers as $item){
+ if( $item['cn'] == $pxecn ){
+ $mesg = "Es existiert bereits ein PXE Boot Men&uuml; mit dem eingegebenen Namen!<br>
+ Bitte geben Sie einen anderen Namen ein.<br><br>";
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+ $brother = 1;
+ break;
+ }
+ }
+ if ($brother == 0 && $nomac == 0){
+
+ $exptargetdn = ldap_explode_dn($targetDN, 1);
+ $target = $exptargetdn[0];
+ $targettype = $exptargetdn[1];
+
+ $oldpxetimerange = $oldpxeday."_".$oldpxebeg."_".$oldpxeend;
+ $newpxeDN = "cn=".$pxecn.",".$targetDN;
+ print_r($newpxeDN); echo "<br>";
+
+ if (dive_into_tree_cp($pxeDN,$newpxeDN)){
+
+ $delfileuri = 0;
+ # Filename anpassen
+ if ($targettype == "rbs"){
+ $entrymod ['filename'] = "default";
+ }
+ if ($targettype == "computers"){
+ $macdata = get_node_data($targetDN, array("hwaddress"));
+ $entrymod ['filename'] = "01-".$macdata['hwaddress'];
+ $delfileuri = 1;
+ #$entrymod ['fileuri'] = "01-".$macdata['hwaddress'].".tgz";
+ }
+ if ($targettype == "groups"){
+ $members = get_node_data($targetDN, array("member"));
+ if (count($members) != 0){
+ foreach ($members['member'] as $hostDN){
+ $macdata = get_node_data($hostDN, array("hwaddress"));
+ $entrymod ['filename'][] = "01-".$macdata['hwaddress'];
+ $delfileuri = 1;
+ #$entrymod ['fileuri'] = $target.".tgz";
+ }
+ }
+ }
+ if(ldap_mod_replace($ds,$newpxeDN,$entrymod)){
+ if($deltr == 1){
+ # Timeranges und FileURI im neuen Objekt löschen
+ $entrydel ['timerange'] = array();
+ if ($delfileuri == 1){
+ $entrydel ['fileuri'] = array();
+ }
+ if ( ldap_mod_del($ds,$newpxeDN,$entrydel) ){
+ $mesg .= "<br>PXE Boot Men&uuml; erfolgreich nach ".$target[1]." kopiert<br>";
+ }
+ else{
+ ldap_delete($ds,$newpxeDN);
+ $mesg .= "<br>Fehler beim kopieren des PXE Boot Men&uuml;s nach <b>".$target[1]."</b><br>";
+ }
+ }
+ }
+ else{
+ ldap_delete($ds,$newpxeDN);
+ $mesg .= "<br>Fehler beim kopieren des PXE Boot Men&uuml;s nach <b>".$target[1]."</b><br>";
+ }
+ }
+ else{
+ $mesg .= "<br>Fehler beim kopieren des PXE Boot Men&uuml;s nach <b>".$target[1]."</b><br>";
+ }
+ }
+ }
+ }
+ else{
+ $mesg .= "<br>Sie haben kein Ziel angegeben!<br>";
+ }
+}
+
+elseif ( $pxecn == ""){
+
+ $mesg = "Sie haben den Namen des neuen PXE Boot Men&uuml;s nicht angegeben. Dieser ist aber ein notwendiges Attribut.<br>
+ Bitte geben Sie ihn an.<br><br>";
+ $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;
+}
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_delete.php b/ldap-site-mngmt/webinterface/rbs/pxe_delete.php
new file mode 100644
index 00000000..a1b7a060
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe_delete.php
@@ -0,0 +1,42 @@
+<?php
+include('../standard_header.inc.php');
+
+$pxeDN = $_POST['dn'];
+$oldpxecn = $_POST['name'];
+
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+$seconds = 1;
+$url = $_POST['successurl'];
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $pxeDN != ""){
+
+ if ( dive_into_tree_del($pxeDN,"") ){
+ $mesg = "PXE Boot Men&uuml; <b>".$pxecn."</b> erfolgreich gel&ouml;scht!<br><br>";
+ }
+ else{
+ $mesg = "Fehler beim l&ouml;schen des PXE Boot Men&uuml;s <b>".$pxecn."</b> !<br><br>";
+ }
+
+}
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxe_wochenplan.php b/ldap-site-mngmt/webinterface/rbs/pxe_wochenplan.php
new file mode 100644
index 00000000..7cb4d394
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxe_wochenplan.php
@@ -0,0 +1,154 @@
+<?php
+
+#####################################
+# Wochenübersicht
+
+$template->assign(array("A0" => "","B0" => "","C0" => "","D0" => "","E0" => "","F0" => "","G0" => "",
+ "A1" => "","B1" => "","C1" => "","D1" => "","E1" => "","F1" => "","G1" => "",
+ "A2" => "","B2" => "","C2" => "","D2" => "","E2" => "","F2" => "","G2" => "",
+ "A3" => "","B3" => "","C3" => "","D3" => "","E3" => "","F3" => "","G3" => "",
+ "A4" => "","B4" => "","C4" => "","D4" => "","E4" => "","F4" => "","G4" => "",
+ "A5" => "","B5" => "","C5" => "","D5" => "","E5" => "","F5" => "","G5" => "",
+ "A6" => "","B6" => "","C6" => "","D6" => "","E6" => "","F6" => "","G6" => "",
+ "A7" => "","B7" => "","C7" => "","D7" => "","E7" => "","F7" => "","G7" => "",
+ "A8" => "","B8" => "","C8" => "","D8" => "","E8" => "","F8" => "","G8" => "",
+ "A9" => "","B9" => "","C9" => "","D9" => "","E9" => "","F9" => "","G9" => "",
+ "A10" => "","B10" => "","C10" => "","D10" => "","E10" => "","F10" => "","G10" => "",
+ "A11" => "","B11" => "","C11" => "","D11" => "","E11" => "","F11" => "","G11" => "",
+ "A12" => "","B12" => "","C12" => "","D12" => "","E12" => "","F12" => "","G12" => "",
+ "A13" => "","B13" => "","C13" => "","D13" => "","E13" => "","F13" => "","G13" => "",
+ "A14" => "","B14" => "","C14" => "","D14" => "","E14" => "","F14" => "","G14" => "",
+ "A15" => "","B15" => "","C15" => "","D15" => "","E15" => "","F15" => "","G15" => "",
+ "A16" => "","B16" => "","C16" => "","D16" => "","E16" => "","F16" => "","G16" => "",
+ "A17" => "","B17" => "","C17" => "","D17" => "","E17" => "","F17" => "","G17" => "",
+ "A18" => "","B18" => "","C18" => "","D18" => "","E18" => "","F18" => "","G18" => "",
+ "A19" => "","B19" => "","C19" => "","D19" => "","E19" => "","F19" => "","G19" => "",
+ "A20" => "","B20" => "","C20" => "","D20" => "","E20" => "","F20" => "","G20" => "",
+ "A21" => "","B21" => "","C21" => "","D21" => "","E21" => "","F21" => "","G21" => "",
+ "A22" => "","B22" => "","C22" => "","D22" => "","E22" => "","F22" => "","G22" => "",
+ "A23" => "","B23" => "","C23" => "","D23" => "","E23" => "","F23" => "","G23" => ""));
+
+#print_r($timeranges); echo "<br>";
+
+# vom spezifischsten zum unspezifischsten :
+# FR_0_7 -> FR_X_X -> X_0_7 -> X_X_X
+$daytime = array();
+$timex = array();
+$dayx = array();
+$allx = array();
+$legend = array();
+if(count($timeranges) != 0){
+foreach ($timeranges as $tr){
+ if (count($tr[0]) > 1){
+ foreach ($tr as $item){
+ if ($item[0] != "X" && $item[1] != "X" && $item[2] != "X" && ($item[0] == "MO" || $item[0] == "DI" || $item[0] == "MI" || $item[0] == "DO" || $item[0] == "FR" || $item[0] == "SA" || $item[0] == "SO")){
+ $daytime[] = $item;
+ }
+ if ($item[0] != "X" && $item[1] == "X" && $item[2] == "X"){
+ $timex[] = $item;
+ }
+ if ($item[0] == "X" && $item[1] != "X" && $item[2] != "X"){
+ $dayx[] = $item;
+ }
+ if ($item[0] == "X" && $item[1] == "X" && $item[2] == "X"){
+ $allx[] = $item;
+ }
+ }
+ }else{
+ if ($tr[0] != "X" && $tr[1] != "X" && $tr[2] != "X" && ($tr[0] == "MO" || $tr[0] == "DI" || $tr[0] == "MI" || $tr[0] == "DO" || $tr[0] == "FR" || $tr[0] == "SA" || $tr[0] == "SO")){
+ $daytime[] = $tr;
+ }
+ if ($tr[0] != "X" && $tr[1] == "X" && $tr[2] == "X"){
+ $timex[] = $tr;
+ }
+ if ($tr[0] == "X" && $tr[1] != "X" && $tr[2] != "X"){
+ $dayx[] = $tr;
+ }
+ if ($tr[0] == "X" && $tr[1] == "X" && $tr[2] == "X"){
+ $allx[] = $tr;
+ }
+ }
+}
+
+#print_r($daytime); echo "<br>";
+#print_r($timex); echo "<br>";
+#print_r($dayx); echo "<br>";
+#print_r($allx); echo "<br>";
+
+$daycode = array("MO" => "A", "DI" => "B", "MI" => "C", "DO" => "D", "FR" => "E", "SA" => "F", "SO" => "G");
+$allxcolors = array("#BEBEBE","A0A0A0","#696969","#EEDFCC","#D8BFD8","#505050");
+$dayxcolors = array("#483D8B","#7B68EE","#191970","#8470FF","#708090","#6A5ACD");
+$timexcolors = array("#CDC673","#A2CD5A","#BDB76B","#8B864E","#6B8E23","#CDBE70");
+$daytimecolors = array("880000","#CD6839","#CC3300","#CC6600","#993300","#8B4C39");
+
+
+if (count($allx) != 0){
+ $c = 0;
+ foreach ($allx as $range){
+ foreach ($daycode as $dc){
+ for ($i = 0; $i <= 23; $i++){
+ $template->assign(array($dc.$i => "background-color:".$allxcolors[$c].";"));
+ }
+ }
+ $legend[] = array($range ,$allxcolors[$c]);
+ $c++;
+ }
+}
+
+if (count($dayx) != 0){
+ $c = 0;
+ foreach ($dayx as $range){
+ foreach ($daycode as $dc){
+ for ($i = $range[1]; $i<= $range[2]; $i++){
+ $template->assign(array($dc.$i => "background-color:".$dayxcolors[$c].";"));
+ }
+ }
+ $legend[] = array($range ,$dayxcolors[$c]);
+ $c++;
+ }
+}
+
+if (count($timex) != 0){
+ $c = 0;
+ foreach ($timex as $range){
+ $dc = $daycode[$range[0]];
+ for ($i = 0; $i<= 23; $i++){
+ $template->assign(array($dc.$i => "background-color:".$timexcolors[$c].";"));
+ }
+ $legend[] = array($range ,$timexcolors[$c]);
+ $c++;
+ }
+}
+
+if (count($daytime) != 0){
+ $c = 0;
+ foreach ($daytime as $range){
+ $dc = $daycode[$range[0]];
+ for ($i = $range[1]; $i<= $range[2]; $i++){
+ $template->assign(array($dc.$i => "background-color:".$daytimecolors[$c].";"));
+ }
+ $legend[] = array($range ,$daytimecolors[$c]);
+ $c++;
+ }
+}
+
+}
+
+$template->assign(array("DESCRIPTION" => ""));
+#print_r($legend);
+if (count($legend) != 0){
+ $template->define_dynamic("Legende", "Webseite");
+ foreach ($legend as $item){
+ # Timerange Komponente
+ $color = $item[1];
+ $template->assign(array("TR1" => $item[0][0],
+ "TR2" => $item[0][1],
+ "TR3" => $item[0][2],
+ "CN" => $item[0][3],
+ "COLOR" => $color));
+ $template->parse("LEGENDE_LIST", ".Legende");
+ }
+}
+
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.dwt b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.dwt
new file mode 100644
index 00000000..bb630723
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.dwt
@@ -0,0 +1,323 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Default PXE Boot Men&uuml;s &nbsp;<code class='font_object'> {AU} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>PXE Boot Men&uuml;</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>G&uuml;ltigkeitsdauer (Time Range)</b></td>
+ </tr>
+
+
+
+ <!-- BEGIN DYNAMIC BLOCK: Pxeconf -->
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{PXECN} &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>{TRANGES} &nbsp;</td>
+ </tr>
+ <!-- END DYNAMIC BLOCK: Pxeconf -->
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='50'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>Wochen &Uuml;bersicht:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <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}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B0}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C0}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D0}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E0}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F0}'>&nbsp;</td>
+ <td width='13%' style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G0}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F1}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G1}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B2}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C2}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D2}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E2}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F2}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G2}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F3}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G3}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B4}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C4}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D4}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E4}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F4}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G4}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F5}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G5}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B6}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C6}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D6}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E6}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F6}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G6}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F7}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G7}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B8}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C8}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D8}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E8}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F8}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G8}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F9}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G9}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B10}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C10}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D10}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E10}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F10}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G10}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F11}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G11}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B12}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C12}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D12}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E12}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F12}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G12}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F13}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G13}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B14}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C14}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D14}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E14}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F14}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G14}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F15}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G15}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B16}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C16}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D16}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E16}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F16}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G16}'>&nbsp;&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F17}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G17}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B18}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C18}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D18}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E18}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F18}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G18}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F19}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G19}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B20}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C20}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D20}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E20}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F20}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G20}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{A21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{B21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{C21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{D21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{E21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 1;{F21}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 0 1;{G21}'>&nbsp;</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}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{B22}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{C22}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{D22}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{E22}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 0 0 1;{F22}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 2 0 1;{G22}'>&nbsp;</td>
+ </tr>
+ <tr heigth='2' align='center'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 2;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{A23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{B23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{C23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{D23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{E23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 2 1;{F23}'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 2 2 1;{G23}'>&nbsp;</td>
+ </tr>
+
+ </table></td>
+ </tr>
+
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Legende:</h4></td>
+ </tr>
+ <tr><td>
+ <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 Boot Men&uuml;</b></td>
+ <td width='5%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</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;'>Keine PXE Definition &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 1 1 1;'>&nbsp;</td>
+ </tr>
+
+ <!-- BEGIN DYNAMIC BLOCK: Legende -->
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>{CN} &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'> &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 1 1 1 1;background-color:{COLOR};'>&nbsp;</td>
+ </tr>
+ <!-- END DYNAMIC BLOCK: Legende -->
+
+ </table></td>
+ </tr>
+
+</table>
diff --git a/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php
new file mode 100644
index 00000000..f9a2b7db
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/pxeconfig_default.php
@@ -0,0 +1,77 @@
+<?php
+
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 3;
+$sbmnr = -1;
+$mcnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "pxeconfig_default.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$template->assign(array("PXEDN" => "",
+ "PXECN" => "Noch kein Default PXE Boot Men&uuml; angelegt",
+ "TRANGES" => "",
+ "RBS" => "",
+ "CN" => ""));
+
+# rbservice und pxe daten (voerst nur ein rbs)
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+$rbsDN = $rbs_array[0]['dn'];
+$pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange","rbservicedn"));
+# print_r($pxe_array);
+
+$template->define_dynamic("Pxeconf", "Webseite");
+
+for ($i=0; $i<count($pxe_array); $i++){
+ # 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']);
+ $timeranges[$i][] = $exptime; # Für grafische Wo-Ansicht
+ if ($exptime[0] == "X"){$exptime[0]="t&auml;glich";}
+ # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";}
+ $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59 / ";
+ }
+ }else{
+ $exptime = array_merge(explode('_',$pxe_array[$i]['timerange']), $pxe_array[$i]['cn']);
+ $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht
+ if ($exptime[0] == "X"){$exptime[0]="t&auml;glich";}
+ # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";}
+ $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59";
+ }
+
+ $template->assign(array("PXEDN" => $pxe_array[$i]['dn'],
+ "PXECN" => $pxe_array[$i]['cn'],
+ "TRANGES" => $trange,
+ "RBS" => $pxe_array[$i]['rbservicedn'],
+ "AUDN" => $auDN));
+ $template->parse("PXECONF_LIST", ".Pxeconf");
+}
+
+include("pxe_wochenplan.php");
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?>
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs.dwt b/ldap-site-mngmt/webinterface/rbs/rbs.dwt
new file mode 100644
index 00000000..ec6d0cbc
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs.dwt
@@ -0,0 +1,79 @@
+<html>
+
+<head>
+ <title>{SEITENTITEL}</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'></head>
+<body>
+
+<table cellpadding='0' cellspacing='0' border='0' width='95%' height='8%'>
+ <tr>
+ <td width='35%'>
+ <table cellpadding='5' cellspacing='0' border='0' width='100%'>
+ <tr valign='top'>
+ <td width='1'></td>
+ <td><h2>Rechner und IP Management</h2></td>
+ </tr>
+ </table>
+ </td>
+
+ <td width='40%'>
+ <table cellpadding='5' cellspacing='0' border='0' width='100%'>
+ <tr valign='top' align='left'>
+ <td>
+ <h4><a href='../start.php' class='headerlink'>Startseite</a>
+ &nbsp;>>&nbsp; <a href='../au/au.php' class='headerlink'>{AU}</a> &nbsp;[ {DOMAIN} ]</h4>
+ </td>
+ </tr>
+ </table>
+ </td>
+ <td width='25%'>
+ <table cellpadding='5' cellspacing='0' border='0' width='100%' align='right'>
+ <tr valign='top' align='right'>
+ <td>
+ {LOGIN}
+ </td>
+ </tr>
+ </table>
+ </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>
+
+
+
+<table cellpadding='5' cellspacing='0' border='0' width='100%' height='85%'>
+
+ <tr valign='top' height='100%'>
+ <td width='28%'>
+ <table cellpadding='5' cellspacing='0' border='0' width='100%'>
+ <tr><td>
+
+ {NAVIGATION}
+
+ </td></tr>
+ </table>
+ </td>
+
+ <td width='72%'>
+ <table cellpadding='5' cellspacing='0' border='0' width='100%'>
+ <tr><td>
+
+ {HAUPTFENSTER}
+
+ </td></tr>
+ </table>
+ </td>
+
+ </tr>
+</table>
+
+</body>
+
+</html>
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs.php b/ldap-site-mngmt/webinterface/rbs/rbs.php
new file mode 100644
index 00000000..3460afa0
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs.php
@@ -0,0 +1,30 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = -1;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "rbs_start.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+$sbmnr = $_GET['sbmnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_footer.inc.php b/ldap-site-mngmt/webinterface/rbs/rbs_footer.inc.php
new file mode 100644
index 00000000..311721c5
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs_footer.inc.php
@@ -0,0 +1,18 @@
+<?php
+
+$template->assign(array("PFAD" => $START_PATH));
+
+# Daten in die Vorlage parsen
+$template->parse("LOGIN", "Login");
+$template->parse("MAINMENU", "Mmenu");
+$template->parse("NAVIGATION", "Menu");
+$template->parse("HAUPTFENSTER", "Webseite");
+$template->parse("PAGE", "Vorlage");
+
+# Fertige Seite an den Browser senden
+$template->FastPrint("PAGE");
+
+# Abmelden vom LDAP
+ldap_unbind($ds);
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_header.inc.php b/ldap-site-mngmt/webinterface/rbs/rbs_header.inc.php
new file mode 100644
index 00000000..fb7e0751
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs_header.inc.php
@@ -0,0 +1,21 @@
+<?php
+include("rbs_menu.php");
+
+$template = new FastTemplate(".");
+
+# dem erstellten Template-Objekt eine Vorlage zuweisen
+$definedTemplates = array("Vorlage" => "rbs.dwt",
+ "Login" => "../logout_form.inc.dwt",
+ "Mmenu" => "../hauptmenue.dwt",
+ "Menu" => "menu.dwt",
+ "Webseite" => $webseite);
+if (isset($additionalTemplates)) {
+ foreach ($additionalTemplates as $templateKey => $templateFile) {
+ $definedTemplates[$templateKey] = $templateFile;
+ }
+}
+$template->define($definedTemplates);
+
+$template->assign(array("SEITENTITEL" => $titel, "ROLLE" => "mainadmin", "AU" => $au_ou, "DOMAIN" => $assocdom, "USERCN" => $usercn));
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_menu.php b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php
new file mode 100644
index 00000000..76a786c2
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs_menu.php
@@ -0,0 +1,215 @@
+<?php
+
+function createRBSMenu($rollen, $mnr, $auDN, $sbmnr) {
+ global $template;
+ global $START_PATH;
+
+ # rbservices (momentan nur für einen RBS konzipiert)
+ $rbs_array = get_rbservices($auDN,array("dn","cn"));
+ if (count($rbs_array) == 0){
+ $rbslink = "new_rbservice.php?mnr=1";
+ $gbmlink = "no_rbservice.php?mnr=2";
+ $pxelink = "no_rbservice.php?mnr=3";
+ }
+ else {
+ $rbslink = "rbservice.php?mnr=1";
+ $gbmlink = "gbm_overview.php?mnr=2";
+ $pxelink = "pxeconfig_default.php?mnr=3";
+ }
+ $rbsDN = $rbs_array[0]['dn'];
+
+ # Struktur der Registerkartenleiste
+ $hauptmenu = array(array("link" => "rbs.php?mnr=0",
+ "text" => "&Uuml;bersicht",
+ "zugriff" => "alle"),
+ array("link" => $rbslink,
+ "text" => "Remote Boot Service",
+ "zugriff" => array("MainAdmin","HostAdmin")),
+ array("link" => $gbmlink,
+ "text" => "Generische Bootmen&uuml;s",
+ "zugriff" => array("MainAdmin","HostAdmin")),
+ array("link" => $pxelink,
+ "text" => "Default PXE",
+ "zugriff" => array("MainAdmin","HostAdmin")));
+ #print_r($hauptmenu);
+
+ # Generische Bootmenüs
+ $gbm = array();
+ if (count($rbs_array) != 0){
+ $generic_bms = get_menuentries($rbsDN, array("dn","cn"));
+ for ($g=0;$g<count($generic_bms);$g++){
+ $gbm[] = array("link" => "gbm.php?dn=".$generic_bms[$g]['dn']."&mnr=2&sbmnr=".$g,
+ "text" => $generic_bms[$g]['cn'],
+ "zugriff" => array("MainAdmin","HostAdmin"));
+ }
+ $gbm [] = array("link" => "new_gbm.php?mnr=2&sbmnr=".$g,
+ "text" => "Neues Generisches BM",
+ "zugriff" => array("MainAdmin","HostAdmin"));
+ }
+
+ # default pxe-configs
+ $pxe = array();
+ if (count($rbs_array) != 0){
+ $pxe_array = get_pxeconfigs($rbsDN,array("dn","cn","timerange"));
+ for($n=0;$n<count($pxe_array);$n++){
+ $pxe [] = array("link" => "pxe.php?dn=".$pxe_array[$n]['dn']."&mnr=3&sbmnr=".$n,
+ "text" => $pxe_array[$n]['cn'],
+ "zugriff" => array("MainAdmin","HostAdmin"));
+ }
+ $pxe [] = array("link" => "new_pxe.php?mnr=3&sbmnr=".$n,
+ "text" => "Neues Default PXE",
+ "zugriff" => array("MainAdmin","HostAdmin"));
+ }
+ $submenu = array(array(),
+ array(),
+ $gbm,
+ $pxe);
+
+ #$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;
+ $j=0;
+ $maxsub = count($submenu[$mnr]);
+ if($maxsub > 0){
+ foreach($submenu[$mnr] as $item2) {
+
+ if($item2['zugriff'] === "alle" || vergleicheArrays($rollen, $item2['zugriff'])) {
+ if($i != $mnr){
+ $template->assign(array("SUB" => ""));
+ # "LINK_S" => "",
+ # "TEXT_S" => ""));
+ $template->parse("SUBMENU_LIST", ".Submenu");
+ $template->clear_dynamic("Submenu");
+ }
+ else{
+ if ($j==0) {
+ if ($sbmnr==0) {
+ if($maxsub == 1){$zwisch="branchbottom2";}
+ else {$zwisch="branch2";}
+ $lastaktive=true;
+ $farb="#505050";
+ }
+ else{
+ if($maxsub == 1){$zwisch="branchbottom2";}
+ else {$zwisch="branch2";}
+ $farb="#A0A0A0";
+ $lastaktive=false;
+ }
+ }
+ else {
+ if ($sbmnr==$j) {
+ if($maxsub == $j+1){$zwisch="branchbottom2";}
+ else {$zwisch="branch2";}
+ $lastaktive=true;
+ $farb="#505050";
+ }
+ else {
+ $farb="#A0A0A0";
+ if($maxsub == $j+1){$zwisch="branchbottom2";}
+ else {$zwisch="branch2";}
+ # if ($lastaktive) {$zwisch="branch";}
+ # else {$zwisch="branch";}
+ $lastaktive=false;
+ }
+ }
+ $htmlcode= "
+ <tr height='4'>
+ <td></td><td align='right'><img src='../pics/line2.gif' height='4'></td><td></td><td></td>
+ </tr>
+ <tr>
+ <td width='8%'>&nbsp;</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:2;padding-left:30px;background-color:{FARBE_S}'>
+ <a href='".$item2['link']."' style='text-decoration:none'><b class='standard_schrift'>".$item2['text']."</b></a></td>
+ <td width='10%'>&nbsp;</td>
+ </tr>
+ ";
+ $template->assign(array("SUB" => $htmlcode));
+ $template->assign(array("FARBE_S" => $farb));
+ $template->parse("SUBMENU_LIST", ".Submenu");
+ $template->clear_dynamic("Submenu");
+ }
+ }
+ else {
+ $subempty++;
+ }
+ $j=$j+1;
+ }
+ }
+ if($subempty == count($submenu[$mnr])) {
+ $template->assign(array("SUB" => ""));
+ # "LINK_S" => "",
+ # "TEXT_S" => ""));
+ $template->parse("SUBMENU_LIST", ".Submenu");
+ $template->clear_dynamic("Submenu");
+ }
+ if ($i==0) {
+ if ($mnr==0) {
+ if(count($submenu[$i][0]) != 0){
+ if($maxmenu == 1){$zwisch="";} # {$zwisch="<img style='border-width:0;border-style=none;' src='../pics/minus2.gif'>";}
+ else {$zwisch="";}
+ }else{$zwisch="";}
+ $lastaktive=true;
+ $farb="#505050";
+ }
+ else{
+ if(count($submenu[$i][0]) != 0){
+ if($maxmenu == 1){$zwisch="<a href='{LINK_M}' style='border-style=none;text-decoration:none'>
+ <img style='border-width:0;border-style=none;' src='../pics/plus2.gif'></a>";}
+ else {$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>";}
+ }else{$zwisch="";}
+ $farb="#A0A0A0";
+ $lastaktive=false;
+ }
+ }
+ else {
+ if ($mnr==$i) {
+ if(count($submenu[$mnr][0]) != 0){
+ if($maxmenu == $i+1){$zwisch="";}
+ else {$zwisch="";}
+ }else{$zwisch="";}
+ $lastaktive=true;
+ $farb="#505050";
+ }
+ else {
+ $farb="#A0A0A0";
+ if(count($submenu[$i][0]) != 0){
+ if($maxmenu == $i+1){$zwisch="<a href='{LINK_M}' style='border-style=none;text-decoration:none'>
+ <img style='border-width:0;border-style=none;' src='../pics/plus2.gif'></a>";}
+ else {$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>";}
+ }else{$zwisch="";}
+ #if ($lastaktive) {$zwisch="";}
+ #else {$zwisch="";}
+ $lastaktive=false;
+ }
+ }
+ $template->assign(array("ICON" => $zwisch,
+ "FARBE" => $farb,
+ "LINK_M" => $item["link"],
+ "TEXT_M" => $item["text"]));
+ $template->parse("HAUPTMENU_LIST", ".Hauptmenu");
+ $template->clear_dynamic("Hauptmenu");
+ }
+ $i=$i+1;
+ }
+ if ($lastaktive) {$template->assign(array("ENDE" => ""));}
+ else{
+ $template->assign(array("ENDE" => ""));
+ }
+
+}
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbs_start.dwt b/ldap-site-mngmt/webinterface/rbs/rbs_start.dwt
new file mode 100644
index 00000000..3436b4ee
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbs_start.dwt
@@ -0,0 +1,41 @@
+<table border='0' cellpadding='5' cellspacing='0' width='90%'>
+ <tr>
+ <td colspan='2'><h3>Modul - Remote Boot Services (PXE) Management: </h3></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr>
+ <td>
+ <p>Dieses Modul dient der Verwaltung ihres <b>Remote Boot Services (RBS)</b><br>
+ Benutzen Sie die Navigation links, um die einzelnen Verwaltungsbereiche anzusteuern:</p>
+ <ul>
+ <li><p><b>Remote Boot Service</b></p>
+ Allgemeine Einstellungen Ihres Remote Boot Service.<br>
+ Falls Sie noch keinen RBS angelegt haben, k&ouml;nnen Sie dies hier tun. <br>
+ Daneben k&ouml;nnen Sie hier ihr RBS Bootserver-System (TFTP-, NFS-, NBD-Server) verwalten.
+ </li>
+ <li><p><b>Generische Boot Men&uuml;s</b></p>
+ Generische Boot Menues die Sie Nutzern ihres RBS anbieten wollen.<br>
+ Hier verwalten Sie Generische Boot Menues (GBM) oder legen neue an.<br><br>
+ GBMs enthalten alle Komponenten eines PXE Bootmen&uuml;s, welche
+ auf ihrem Bootserver-System gespeichert und von Ihnen verwaltet werden, d.h.
+ Kernel-Images, Initial-Ramdisks (initrd), usw. Diese sind unabh&auml;ngig
+ von den PXE-Parametern, die das eigentliche Aussehen eines PXE Bootmen&uuml;s bestimmen,
+ wie z.B. Menu-Zeilen, oder PXE Parametern welche zur Bootclient Konfiguration verwendet
+ werden.<br>
+ Nutzer ihres RBS k&ouml;nnen aus diesen GBMs dann ihre individuellen PXE Boot
+ Men&uuml;s zusammenstellen.
+
+ </li>
+ <li><p><b>Default PXE</b></p>
+ Default PXE Boot Konfigurationen, fuer die bootende Rechner ohne spezifische
+ PXEs.<br>
+ Hier k&ouml;nnen Sie Default PXEs anlegen und verwalten.
+ </li>
+ </ul>
+
+ </td>
+ </tr>
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.dwt b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt
new file mode 100644
index 00000000..c2af43fb
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbservice.dwt
@@ -0,0 +1,228 @@
+<table border='0' cellpadding='5' cellspacing='0' width='100%'>
+ <tr>
+ <td colspan='2'><h3>Remote Boot Service &nbsp;<code class='font_object'> {RBSCN} </code> </h3></td>
+ </tr>
+ <tr>
+ <td height='20'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <form action='rbservice_change.php' method='post'>
+
+ <tr>
+ <td width='40%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Attribut</b></td>
+ <td width='60%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Wert</b></td>
+ </tr>
+
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>Eindeutiger RBS Name (cn):</b><br>(Teil des dn, ohne Leerzeichen eingeben) &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <font size='+2'><b>RBS_</b></font><input type='Text' name='rbscn' value='{RBSCN}' size='40' class='medium_form_field'>
+ <input type='hidden' name='oldrbscn' value='{RBSCN}'> &nbsp;
+ </td>
+ </tr>
+ <tr height='50'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>Dienst kann momentan genutzt werden von:</b><br></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Abteilung<b> {RBSOFFERNOW}</b> &nbsp;(und allen Unterabteilungen)
+ </td>
+ </tr>
+ <tr height='50' valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><b>&Auml;ndern:</b><br>(W&auml;hlen Sie eine andere Abteilung)</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='rbsoffer' size='5' class='medium_form_selectbox'>
+ <option selected value='none'>----------</option>
+
+ <!-- BEGIN DYNAMIC BLOCK: Rbsoffers -->
+ <option value='{RBSOFFER}'>{RBSOFFEROU}</option>
+ <!-- END DYNAMIC BLOCK: Rbsoffers -->
+
+ <option value='off'>------ ABSCHALTEN ------</option>
+
+ </select>
+ <input type='hidden' name='oldrbsoffer' value='{RBSOFFERNOWDN}'> &nbsp;
+ </td>
+ </tr>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td height='40'></td>
+ </tr>
+ <tr>
+ <td colspan='2'><h4>Boot Server System:</h4></td>
+ </tr>
+ <tr>
+ <td height='10'></td>
+ </tr>
+ <tr><td>
+ <table cellpadding='7' cellspacing='0' border='1' align='left' width='90%' style='border-width: 0 0 0 0;'>
+
+ <tr valign='top'>
+ <td width='20%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server</b></td>
+ <td width='30%' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>IP Adresse<br>(Rechner &auml;ndern)</b></td>
+ <td colspan='2' style='border-color: black; border-style: solid; border-width: 0 0 3 0;'><b>Server Pfade</b></td>
+ </tr>
+
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>TFTP Server: &nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='tftpserverip' value='{TFTPIP}' size='15' class='medium_form_field'>
+ <input type='hidden' name='oldtftpserverip' value='{TFTPIP}'></td>
+ <td width='15%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Init Boot File</td>
+ <td width='35%' style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='attribs[initbootfile]' value='{INITBOOTFILE}' size='25' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[initbootfile]' value='{INITBOOTFILE}'></td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><font size='+1'>{TFTP}</font></td>
+ <td rowspan='3' style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='tftpserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: TftpHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: TftpHosts -->
+ </select></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>PXE Path</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='attribs[tftppxepath]' value='{TFTPPXE}' size='25' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[tftppxepath]' value='{TFTPPXE}'></td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Kernel Path</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='attribs[tftpkernelpath]' value='{TFTPKERNEL}' size='25' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[tftpkernelpath]' value='{TFTPKERNEL}'></td>
+ </tr>
+ <tr valign='top'>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>Clientconf Path</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <input type='Text' name='attribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}' size='25' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[tftpclientconfpath]' value='{TFTPCLIENTCONF}'></td>
+ <input type='hidden' name='oldtftpserverdn' value='{TFTPDN}'>
+ </tr>
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>NFS Server: </b></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='nfsserverip' value='{NFSIP}' size='15' class='medium_form_field'>
+ <input type='hidden' name='oldnfsserverip' value='{NFSIP}'></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>Export Path</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='attribs[exportpath]' value='{NFSPATH}' size='25' class='medium_form_field'>
+ <input type='hidden' name='oldattribs[exportpath]' value='{NFSPATH}'></td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><font size='+1'>{NFS}</font>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='nfsserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: NfsHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: NfsHosts -->
+ </select> </td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <input type='hidden' name='oldnfsserverdn' value='{NFSDN}'>
+ </tr>
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'><b>NBD Server: </b></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ <input type='Text' name='nbdserverip' value='{NBDIP}' size='15' class='medium_form_field'>
+ <input type='hidden' name='oldnbdserverip' value='{NBDIP}'></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>&nbsp;</td>
+ </tr>
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'><font size='+1'>{NBD}</font>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>
+ <select name='nbdserver' size='4' class='small_form_selectbox'>
+ <option selected value='none'>----------------------------</option>
+ <!-- BEGIN DYNAMIC BLOCK: NbdHosts -->
+ <option value='{HDN}'>{HN}</option>
+ <!-- END DYNAMIC BLOCK: NbdHosts -->
+ </select></td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 1 0;'>&nbsp;</td>
+ <input type='hidden' name='oldnbdserverdn' value='{NBDDN}'>
+ </tr>
+
+ <input type='hidden' name='rbsdn' value='{RBSDN}'>
+ <input type='hidden' name='mnr' value='{MNR}'>
+ <input type='hidden' name='sbmnr' value='{SBMNR}'>
+
+ </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>
+ <tr>
+ <td colspan='2'><h3>Config File f&uuml;r PXE Generator Script</h3></td>
+ </tr>
+ <tr>
+ <td colspan='2'>Speichern Sie dieses als <b>pxegen.conf.pl</b> im gleichen Verzeichnis wie ihr PXE Generator Skript <b>pxe_generator.pl</b></td>
+ </tr>
+ <tr>
+ <td>
+ <table cellpadding='20' cellspacing='0' border='0' align='left' width='80%' style='border-color: black; border-style: solid; border-width: 2 2 2 2;'>
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ $ldaphost= "{PXEGENLDAP}"; <br>
+ $basedn= "{PXEGENBASE}"; <br>
+ $userdn= "{PXEGENUDN}"; <br>
+ $passwd= "{PXEGENPW}"; <br>
+ $rbsdn= "{PXEGENRBS}";
+ </td>
+ </tr>
+
+
+ </table></td>
+ </tr>
+
+
+
+ <tr>
+ <td height='60'></td>
+ </tr>
+
+ <tr>
+ <td colspan='2'><h4>Remote Boot Service &nbsp;<code class='font_object'>{RBSCN}</code>&nbsp; l&ouml;schen:</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='delete_confirm.php' method='post'>
+
+
+ <tr>
+ <td style='border-color: black; border-style: solid; border-width: 0 0 0 0;'>
+ Der Remote Boot Dienst wird komplett gel&ouml;scht, <br>
+ d.h. inklusive aller angelegten Generischen PXE Bootmen&uuml;s und Default PXEs.
+ </tr>
+
+ <input type='hidden' name='dn' value='{RBSDN}'>
+ <input type='hidden' name='name' value='{RBSCN}'>
+ <input type='hidden' name='type' value='rbs'>
+ <input type='hidden' name='delurl' value='rbservice_delete.php'>
+ <input type='hidden' name='backurl' value='rbservice.php?dn={RBSDN}&mnr={MNR}'>
+
+ </table></td>
+ </tr>
+ <tr>
+ <td>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'>
+ </form></td>
+ </tr>
+
+
+</table> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice.php b/ldap-site-mngmt/webinterface/rbs/rbservice.php
new file mode 100644
index 00000000..73dde633
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbservice.php
@@ -0,0 +1,148 @@
+<?php
+include('../standard_header.inc.php');
+
+# 1. Seitentitel - wird in der Titelleiste des Browser angezeigt.
+$titel = "Remote Boot Service Management";
+# 2. Nummer des zugehörigen Hauptmenus (Registerkarte) beginnend bei 0, siehe Dokumentation.doc.
+$mainnr = 4;
+$mnr = 0;
+$sbmnr = -1;
+# 3. Dateiname und evtl. Pfad des Templates für die Webseite
+$webseite = "rbservice.dwt";
+
+include("../class.FastTemplate.php");
+
+include('rbs_header.inc.php');
+
+###################################################################################
+
+$mnr = $_GET['mnr'];
+
+# Menuleisten erstellen
+createMainMenu($rollen, $mainnr);
+createRBSMenu($rollen, $mnr, $auDN, $sbmnr);
+
+###################################################################################
+
+$template->assign(array("RBSDN" => "",
+ "CN" => "",
+ "TFTP" => "",
+ "TFTPIP" => "",
+ "INITBOOTFILE" => "",
+ "TFTPKERNEL" => "",
+ "TFTPPXE" => "",
+ "TFTPCLIENTCONF" => "",
+ "NFS" => "",
+ "NFSIP" => "",
+ "NFSPATH" => "",
+ "NBD" => "",
+ "NBDIP" => "",
+ "RBSOFFERNOWDN" => "",
+ "RBSOFFERNOW" => "",
+ "HDN" => "",
+ "HN" => "",
+ "IP" => ""));
+
+# RBS Daten
+$rbs_array = get_rbservices($auDN,array("dn","cn"));
+$rbsDN = $rbs_array[0]['dn'];
+$attributes = array("dn","cn","rbsofferdn","tftpserverip","tftpkernelpath","tftpclientconfpath","tftppxepath",
+ "nfsserverip","exportpath","nbdserverip","initbootfile");
+$rbs_data = get_node_data($rbsDN, $attributes);
+
+# RBS Anbieten
+# momentanes Offer
+$offerexp = ldap_explode_dn($rbs_data['rbsofferdn'], 1);
+$rbsoffernow = $offerexp[0];
+# alternative Offers
+$expdn = ldap_explode_dn($auDN, 0); # Mit Merkmalen
+$expdn = array_slice($expdn, 1);
+$expou = ldap_explode_dn($auDN, 1); # nur Werte
+$expou = array_slice($expou, 1, -3);
+#print_r($expou); echo "<br>";
+#print_r($expdn); echo "<br>";
+for ($i=0; $i<count($expou); $i++){
+ $rbsoffers[$i]['ou'] = $expou[$i];
+ $rbsoffers[$i]['dn'] = implode(',',$expdn);
+ $expdn = array_slice($expdn, 1);
+}
+#print_r($rbsoffers);
+
+$expcn = explode('_',$rbs_data['cn']);
+$name = array_slice($expcn,1);
+$rbscn = implode('_',$name);
+
+# Server Hostnamen holen
+$tftpserver = get_hostname_from_ip($rbs_data['tftpserverip'],$auDN);
+$nfsserver = get_hostname_from_ip($rbs_data['nfsserverip'],$auDN);
+$nbdserver = get_hostname_from_ip($rbs_data['nbdserverip'],$auDN);
+
+$template->assign(array("RBSDN" => $rbs_data['dn'],
+ "RBSCN" => $rbscn,
+ "TFTP" => $tftpserver['hostname'],
+ "TFTPDN" => $tftpserver['dn'],
+ "TFTPIP" => $rbs_data['tftpserverip'],
+ "INITBOOTFILE" => $rbs_data['initbootfile'],
+ "TFTPKERNEL" => $rbs_data['tftpkernelpath'],
+ "TFTPPXE" => $rbs_data['tftppxepath'],
+ "TFTPCLIENTCONF" => $rbs_data['tftpclientconfpath'],
+ "NFS" => $nfsserver['hostname'],
+ "NFSDN" => $nfsserver['dn'],
+ "NFSIP" => $rbs_data['nfsserverip'],
+ "NFSPATH" => $rbs_data['exportpath'],
+ "NBD" => $nbdserver['hostname'],
+ "NBDDN" => $nbdserver['dn'],
+ "NBDIP" => $rbs_data['nbdserverip'],
+ "RBSOFFERNOWDN" => $rbs_data['rbsofferdn'],
+ "RBSOFFERNOW" => $rbsoffernow,
+ "MNR" => $mnr,
+ "SBMNR" => $sbmnr));
+
+$template->define_dynamic("Rbsoffers", "Webseite");
+foreach ($rbsoffers as $offer){
+ $template->assign(array("RBSOFFER" => $offer['dn'],
+ "RBSOFFEROU" => $offer['ou'],));
+ $template->parse("RBSOFFERS_LIST", ".Rbsoffers");
+}
+
+### Rechner
+$hostorgroup = $exp[0];
+$hosts_array = get_hosts($auDN,array("dn","hostname","ipaddress"));
+
+$template->define_dynamic("TftpHosts", "Webseite");
+$template->define_dynamic("NfsHosts", "Webseite");
+$template->define_dynamic("NbdHosts", "Webseite");
+foreach ($hosts_array as $item){
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("TFTPHOSTS_LIST", ".TftpHosts");
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("NFSHOSTS_LIST", ".NfsHosts");
+ $template->assign(array("HDN" => $item['dn'],
+ "HN" => $item['hostname'],
+ "IP" => $item['ipaddress']));
+ $template->parse("NBDHOSTS_LIST", ".NbdHosts");
+}
+
+################################################
+# PXE Generator Skript Config
+$pxegen_ldap = "ldap://".LDAP_HOST;
+$pxegen_base = "ou=RIPM,".$suffix;
+$pxegen_udn = $userDN;
+$pxegen_pw = $userPassword;
+$pxegen_rbsdn = $rbsDN;
+$template->assign(array("PXEGENLDAP" => $pxegen_ldap,
+ "PXEGENBASE" => $pxegen_base,
+ "PXEGENUDN" => $pxegen_udn,
+ "PXEGENPW" => $pxegen_pw,
+ "PXEGENRBS" => $pxegen_rbsdn));
+
+
+###################################################################################
+
+include("rbs_footer.inc.php");
+
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_add.php b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php
new file mode 100644
index 00000000..54494999
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbservice_add.php
@@ -0,0 +1,140 @@
+<?php
+include('../standard_header.inc.php');
+
+$rbscn = $_POST['rbscn']; $rbscn = htmlentities($rbscn);
+
+$nodeDN = "cn=rbs,".$auDN;
+
+$rbsoffer = $_POST['rbsoffer'];
+
+$tftpserverip = $_POST['tftpserverip'];
+$nfsserverip = $_POST['nfsserverip'];
+$nbdserverip = $_POST['nbdserverip'];
+
+$tftpserver = $_POST['tftpserver'];
+$nfsserver = $_POST['nfsserver'];
+$nbdserver = $_POST['nbdserver'];
+
+$host_array = get_hosts($auDN,array("dn","hostname","ipaddress"));
+
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+# sosntige Attribute
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+#print_r($atts); echo "<br><br>";
+
+
+$get_rbscn = str_replace ( " ", "_", $rbscn );
+$seconds = 300;
+$url = "new_rbservice.php?&mnr=1";
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $rbscn != "" && $rbscn != "Hier_RBS_NAME_eintragen" ){
+
+ $rbscn = "RBS_".$rbscn;
+
+ # Formulareingaben anpassen
+ $exprbs = explode(" ",$rbscn);
+ foreach ($exprbs as $word){$expuc[] = ucfirst($word);}
+ $rbscn = implode(" ",$expuc);
+ $rbscn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $rbscn);
+
+ $rbsDN = "cn=".$rbscn.",".$nodeDN;
+ print_r($rbsDN); echo "<br><br>";
+
+ # Server_array zusammenstellen
+ $server = array();
+ # TFTP Server
+ if ($tftpserverip != ""){
+ if ($syntax->check_ip_syntax($tftpserverip)){
+ $tftpserverip = htmlentities($tftpserverip);
+ $mesg .= "Suche nach dem Rechner mit IP ".$tftpserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($tftpserverip == $hostip){
+ $server ['tftp'] = $tftpserverip;
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$tftpserverip."!<br>";
+ }
+ }
+ }else{$mesg .= "Falsche IP Syntax!<br>";}
+ }
+ # NFS Server
+ if ( $nfsserverip != "" ){
+ if ($syntax->check_ip_syntax($nfsserverip)){
+ $nfsserverip = htmlentities($nfsserverip);
+ $mesg .= "Suche nach dem Rechner mit IP ".$nfsserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($nfsserverip == $hostip){
+ $server ['nfs'] = $nfsserverip;
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$nfsserverip."!<br>";
+ }
+ }
+ }else{$mesg .= "Falsche IP Syntax!<br>";}
+ }
+ # NBD Server
+ if ( $nbdserverip != "" ){
+ if ($syntax->check_ip_syntax($nbdserverip)){
+ $nbdserverip = htmlentities($nbdserverip);
+ $mesg .= "Suche nach dem Rechner mit IP ".$nbdserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($nbdserverip == $hostip){
+ $server ['nbd'] = $nbdserverip;
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$nbdserverip."!<br>";
+ }
+ }
+ }else{$mesg .= "Falsche IP Syntax!<br>";}
+ }
+ echo "Server Array: ";print_r($server); echo "<br>";
+
+ if (add_rbs($rbsDN,$rbscn,$rbsoffer,$server,$atts)){
+ $mesg .= "<br>Remote Boot Service erfolgreich angelegt<br>";
+ $url = "rbservice.php?mnr=1";
+ }else{
+ $mesg .= "<br>Fehler beim anlegen des Remote Boot Services!<br>";
+ }
+}
+
+elseif ( $rbscn == "" || $rbscn == "Hier_RBS_NAME_eintragen" ){
+
+ $mesg = "Sie haben den Namen des neuen Remote Boot Service nicht angegeben. Dieser ist
+ aber ein notwendiges Attribut.<br>
+ Bitte geben Sie ihn an.<br><br>";
+ $url = "new_rbservice.php?rbscn=Hier_RBS_NAME_eintragen&mnr=1";
+}
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_change.php b/ldap-site-mngmt/webinterface/rbs/rbservice_change.php
new file mode 100644
index 00000000..e5419c36
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbservice_change.php
@@ -0,0 +1,337 @@
+<?php
+include('../standard_header.inc.php');
+
+$rbscn = "RBS_".$_POST['rbscn'];
+$oldrbscn = "RBS_".$_POST['oldrbscn'];
+$rbsoffer = $_POST['rbsoffer'];
+$oldrbsoffer = $_POST['oldrbsoffer'];
+
+$tftpserverip = $_POST['tftpserverip'];
+$oldtftpserverip = $_POST['oldtftpserverip'];
+$nfsserverip = $_POST['nfsserverip'];
+$oldnfsserverip = $_POST['oldnfsserverip'];
+$nbdserverip = $_POST['nbdserverip'];
+$oldnbdserverip = $_POST['oldnbdserverip'];
+
+$tftpserver = $_POST['tftpserver'];
+$nfsserver = $_POST['nfsserver'];
+$nbdserver = $_POST['nbdserver'];
+$oldtftpserverdn = $_POST['oldtftpserverdn'];
+$oldnfsserverdn = $_POST['oldnfsserverdn'];
+$oldnbdserverdn = $_POST['oldnbdserverdn'];
+
+$host_array = get_hosts($auDN,array("dn","hostname","ipaddress"));
+
+$rbsDN = $_POST['rbsdn'];
+$nodeDN = "cn=rbs,".$auDN;
+
+$mnr = $_POST['mnr'];
+$sbmnr = $_POST['sbmnr'];
+$mcnr = $_POST['mcnr'];
+
+# sosntige Attribute
+$attribs = $_POST['attribs'];
+if (count($attribs) != 0){
+ foreach (array_keys($attribs) as $key){
+ $atts[$key] = htmlentities($attribs[$key]);
+ }
+}
+#print_r($atts); echo "<br><br>";
+$oldattribs = $_POST['oldattribs'];
+if (count($oldattribs) != 0){
+ foreach (array_keys($oldattribs) as $key){
+ $oldatts[$key] = htmlentities($oldattribs[$key]);
+ }
+}
+#print_r($oldatts); echo "<br><br>";
+
+
+$seconds = 2;
+$url = "rbservice.php?&mnr=1";
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+##############################################
+# RBS CN (DN)
+
+if ( $oldrbscn == $rbscn ){
+ # $mesg = "keine Aenderung<br>";
+}
+
+if ( $oldrbscn != "" && $rbscn != "" && $oldrbscn != $rbscn ){
+ echo "RBS Name aendern<br>";
+ # hier noch Syntaxcheck
+ # Formulareingaben anpassen
+ $exprbs = explode(" ",$rbscn);
+ foreach ($exprbs as $word){$expuc[] = ucfirst($word);}
+ $rbscn = implode(" ",$expuc);
+ $rbscn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $rbscn);
+
+ $newrbsDN = "cn=".$rbscn.",".$nodeDN;
+ print_r($newrbsDN); echo "<br><br>";
+
+ if(move_subtree($rbsDN, $newrbsDN)){
+ adjust_rbs_dn($newrbsDN, $rbsDN);
+ $rbsDN = $newrbsDN;
+ $mesg = "RBS Name erfolgreich ge&auml;ndert<br><br>";
+ }else{
+ $mesg = "Fehler beim &auml;ndern des RBS Namen!<br><br>";
+ }
+}
+
+if ( $oldrbscn != "" && $rbscn == "" ){
+ echo "Gruppenname loeschen!<br>
+ Dieses ist Teil des DN, Sie werden den RBS komplett l&ouml;schen<br><br>";
+ echo "Wollen Sie den RBS Dienst <b>".$oldrbscn."</b> wirklich l&ouml;schen?<br><br>
+ <form action='rbservice_delete.php' method='post'>
+ Falls ja:<br><br>
+ <input type='hidden' name='dn' value='".$pxeDN."'>
+ <input type='hidden' name='name' value='".$oldrbscn."'>
+ <input type='Submit' name='apply' value='l&ouml;schen' class='small_loginform_button'><br><br>
+ </form>
+ <form action='".$url."' method='post'>
+ Falls, nein:<br><br>
+ <input type='Submit' name='apply' value='zur&uuml;ck' class='small_loginform_button'>
+ </form>";
+ $seconds = 600;
+}
+
+
+#####################################
+# Offer ändern
+
+if ( $rbsoffer != "none" && $rbsoffer == $oldrbsoffer ){
+ $mesg = "Sie haben die gleiche Abteilung ausgew&auml;hlt<br>
+ Keine &Auml;nderung!";
+}
+
+if ( $rbsoffer != "none" && $rbsoffer != $oldrbsoffer ){
+ $entryoffer ['rbsofferdn'] = $rbsoffer;
+ if(ldap_mod_replace($ds,$rbsDN,$entryoffer)){
+ $mesg = "RBS Offer erfolgreich ge&auml;ndert<br><br>";
+ }
+ else{
+ $mesg = "Fehler beim &auml;ndern des RBS Offers!<br><br>";
+ }
+}
+
+
+#####################################
+# Server ändern über IP Feld
+
+$syntax = new Syntaxcheck;
+
+if ( $tftpserverip != "" && $tftpserverip != $oldtftpserverip ){
+
+ if ($syntax->check_ip_syntax($tftpserverip)){
+ $tftpserverip = htmlentities($tftpserverip);
+
+ $mesg .= "Suche nach dem Rechner mit IP ".$tftpserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($tftpserverip == $hostip){
+ $entrytftp ['tftpserverip'] = $tftpserverip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrytftp)){
+ $mesg .= "Treffer: Rechner ".$host['hostname']."<br>TFTP Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des TFTP Servers!<br>";
+ }
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$tftpserverip."!<br>";
+ }
+ }
+ }
+ else{
+ $mesg .= "Falsche IP Syntax!<br>";
+ }
+}
+
+if ( $nfsserverip != "" && $nfsserverip != $oldnfsserverip ){
+
+ if ($syntax->check_ip_syntax($nfsserverip)){
+ $nfsserverip = htmlentities($nfsserverip);
+
+ $mesg .= "Suche nach dem Rechner mit IP ".$nfsserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($nfsserverip == $hostip){
+ $entrytnfs ['nfsserverip'] = $nfsserverip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrytnfs)){
+ $mesg .= "Treffer: Rechner ".$host['hostname']."<br>NFS Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des NFS Servers!<br>";
+ }
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$nfsserverip."!<br>";
+ }
+ }
+ }
+ else{
+ $mesg .= "Falsche IP Syntax!<br>";
+ }
+}
+
+if ( $nbdserverip != "" && $nbdserverip != $oldnbdserverip ){
+
+ if ($syntax->check_ip_syntax($nbdserverip)){
+ $nbdserverip = htmlentities($nbdserverip);
+
+ $mesg .= "Suche nach dem Rechner mit IP ".$nbdserverip." :<br>";
+ foreach ($host_array as $host){
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ if ($nbdserverip == $hostip){
+ $entrytnbd ['nbdserverip'] = $nbdserverip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrytnbd)){
+ $mesg .= "Treffer: Rechner ".$host['hostname']."<br>NBD Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des NBD Servers!<br>";
+ }
+ break;
+ }else{
+ $mesg .= "Rechner ".$host['hostname'].": keine &Uuml;bereinstimmung mit eingegebener IP ".$nbdserverip."!<br>";
+ }
+ }
+ }
+ else{
+ $mesg .= "Falsche IP Syntax!<br>";
+ }
+}
+
+#####################################
+# Server ändern über Hostname
+
+if ($tftpserver != "none" && $tftpserver != $oldtftpserverdn){
+
+ $host = get_host_ip($tftpserver);
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ $entrytftp ['tftpserverip'] = $hostip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrytftp)){
+ $mesg .= "TFTP Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des TFTP Servers!<br>";
+ }
+
+}
+
+if ($nfsserver != "none" && $nfsserver != $oldnfsserverdn){
+
+ $host = get_host_ip($nfsserver);
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ $entrynfs ['nfsserverip'] = $hostip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrynfs)){
+ $mesg .= "NFS Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des NFS Servers!<br>";
+ }
+
+}
+
+if ($nbdserver != "none" && $nbdserver != $oldnbdserverdn){
+
+ $host = get_host_ip($nbdserver);
+ $hostipexp = explode('_',$host['ipaddress']);
+ $hostip = $hostipexp[0];
+ $entrytnbd ['nbdserverip'] = $hostip;
+ if (ldap_mod_replace($ds,$rbsDN,$entrytnbd)){
+ $mesg .= "NBD Server erfolgreich ge&auml;ndert<br>";
+ }else{
+ $mesg .= "Fehler beim &auml;ndern des NBD Servers!<br>";
+ }
+
+}
+
+#####################################
+# Restliche Attribute
+
+$entryadd = array();
+$entrymod = array();
+$entrydel = array();
+
+foreach (array_keys($atts) as $key){
+
+ if ( $oldatts[$key] == $atts[$key] ){
+
+ }
+ if ( $oldatts[$key] == "" && $atts[$key] != "" ){
+ # hier noch Syntaxcheck
+ $entryadd[$key] = $atts[$key];
+ }
+ if ( $oldatts[$key] != "" && $atts[$key] != "" && $oldatts[$key] != $atts[$key] ){
+ # hier noch Syntaxcheck
+ $entrymod[$key] = $atts[$key];
+ }
+ if ( $oldatts[$key] != "" && $atts[$key] == "" ){
+ # hier noch Syntaxcheck
+ $entrydel[$key] = $oldatts[$key];
+ }
+}
+
+#print_r($entryadd); echo "<br>";
+#print_r($entrymod); echo "<br>";
+#print_r($entrydel); echo "<br>";
+
+
+if (count($entryadd) != 0 ){
+ #print_r($entryadd); echo "<br>";
+ #echo "neu anlegen<br>";
+ foreach (array_keys($entryadd) as $key){
+ $addatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_add($ds,$rbsDN,$entryadd)){
+ $mesg = "Attribute ".$addatts." erfolgreich eingetragen<br><br>";
+ }else{
+ $mesg = "Fehler beim eintragen der Attribute ".$addatts."<br><br>";
+ }
+}
+
+if (count($entrymod) != 0 ){
+ #print_r($entrymod); echo "<br>";
+ #echo "&auml;ndern<br>";
+ foreach (array_keys($entrymod) as $key){
+ $modatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_replace($ds,$rbsDN,$entrymod)){
+ $mesg = "Attribute ".$modatts." erfolgreich geaendert<br><br>";
+ }else{
+ $mesg = "Fehler beim aendern der Attribute ".$modatts."<br><br>";
+ }
+}
+
+if (count($entrydel) != 0 ){
+ #print_r($entrydel); echo "<br>";
+ #echo "l&ouml;schen<br>";
+ foreach (array_keys($entrydel) as $key){
+ $delatts .= "<b>".$key."</b>,";
+ }
+ if(ldap_mod_del($ds,$rbsDN,$entrydel)){
+ $mesg = "Attribute ".$delatts." erfolgreich geloescht<br><br>";
+ }else{
+ $mesg = "Fehler beim loeschen der Attribute ".$delatts."<br><br>";
+ }
+}
+
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file
diff --git a/ldap-site-mngmt/webinterface/rbs/rbservice_delete.php b/ldap-site-mngmt/webinterface/rbs/rbservice_delete.php
new file mode 100644
index 00000000..919987bd
--- /dev/null
+++ b/ldap-site-mngmt/webinterface/rbs/rbservice_delete.php
@@ -0,0 +1,41 @@
+<?php
+include('../standard_header.inc.php');
+
+$rbsDN = $_POST['dn'];
+$rbscn = $_POST['name'];
+
+$seconds = 100;
+$url = 'rbs.php';
+
+echo "
+<html>
+<head>
+ <title>Computers Management</title>
+ <link rel='stylesheet' href='../styles.css' type='text/css'>
+</head>
+<body>
+<table border='0' cellpadding='30' cellspacing='0'>
+<tr><td>";
+
+if ( $rbsDN != ""){
+
+ if ( dive_into_tree_del($rbsDN,"") ){
+ clean_up_del_rbs($rbsDN);
+ $mesg = "Remote Boot Service <b>".$rbscn."</b> erfolgreich gel&ouml;scht!<br><br>";
+ }
+ else{
+ $mesg = "Fehler beim l&ouml;schen des Remote Boot Services <b>".$rbscn."</b> !<br><br>";
+ }
+
+}
+
+
+
+
+$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zur&uuml;ckgeleitet. <br>
+ Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>";
+redirect($seconds, $url, $mesg, $addSessionId = TRUE);
+
+echo "</td></tr></table></body>
+</html>";
+?> \ No newline at end of file