From 59cf91925ca8da43d2427331b23e4673b0e53095 Mon Sep 17 00:00:00 2001 From: Tarik Gasmi Date: Mon, 14 May 2007 08:03:48 +0000 Subject: Other webinterface data. git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1077 95ad53e4-c205-0410-b2fa-d234c58c8868 --- .../webinterface/computers/computers.dwt | 79 ++++ .../webinterface/computers/computers.php | 28 ++ .../computers/computers_footer.inc.php | 18 + .../computers/computers_header.inc.php | 21 + .../webinterface/computers/computers_menu.php | 382 +++++++++++++++++ .../webinterface/computers/computers_menu.save.php | 188 ++++++++ .../webinterface/computers/computers_start.dwt | 42 ++ .../webinterface/computers/delete_confirm.php | 39 ++ .../webinterface/computers/dhcphost.dwt | 84 ++++ .../webinterface/computers/dhcphost.php | 278 ++++++++++++ .../webinterface/computers/dhcphost_change.php | 177 ++++++++ ldap-site-mngmt/webinterface/computers/group.dwt | 397 +++++++++++++++++ ldap-site-mngmt/webinterface/computers/group.php | 120 ++++++ .../webinterface/computers/group_add.php | 84 ++++ .../webinterface/computers/group_change.php | 252 +++++++++++ .../webinterface/computers/group_delete.php | 47 ++ .../webinterface/computers/groupoverview.dwt | 38 ++ .../webinterface/computers/groupoverview.php | 64 +++ ldap-site-mngmt/webinterface/computers/host.dwt | 421 ++++++++++++++++++ ldap-site-mngmt/webinterface/computers/host.php | 95 ++++ .../webinterface/computers/host_add.php | 101 +++++ .../webinterface/computers/host_change.php | 396 +++++++++++++++++ .../webinterface/computers/host_delete.php | 47 ++ .../webinterface/computers/hostoverview.dwt | 40 ++ .../webinterface/computers/hostoverview.php | 82 ++++ ldap-site-mngmt/webinterface/computers/hwhost.dwt | 60 +++ ldap-site-mngmt/webinterface/computers/hwhost.php | 78 ++++ .../webinterface/computers/hwhost_change.php | 127 ++++++ .../computers/machineconfig_default.dwt | 323 ++++++++++++++ .../computers/machineconfig_default.php | 75 ++++ .../webinterface/computers/mc_wochenplan.php | 154 +++++++ ldap-site-mngmt/webinterface/computers/mcdef.dwt | 293 +++++++++++++ ldap-site-mngmt/webinterface/computers/mcdef.php | 137 ++++++ .../webinterface/computers/mcdef_add.php | 160 +++++++ .../webinterface/computers/mcdef_change.php | 402 +++++++++++++++++ .../webinterface/computers/mcdef_copy.php | 111 +++++ .../webinterface/computers/mcdef_delete.php | 40 ++ ldap-site-mngmt/webinterface/computers/menu.dwt | 40 ++ .../webinterface/computers/menuentry.dwt | 249 +++++++++++ .../webinterface/computers/menuentry.php | 170 ++++++++ .../webinterface/computers/menuentry_add.php | 263 ++++++++++++ .../webinterface/computers/menuentry_change.php | 208 +++++++++ .../webinterface/computers/menuentry_delete.php | 41 ++ .../webinterface/computers/menuposition_down.php | 42 ++ .../webinterface/computers/menuposition_up.php | 40 ++ .../webinterface/computers/new_group.dwt | 101 +++++ .../webinterface/computers/new_group.php | 76 ++++ .../webinterface/computers/new_host.dwt | 112 +++++ .../webinterface/computers/new_host.php | 53 +++ .../webinterface/computers/new_mcdef.dwt | 184 ++++++++ .../webinterface/computers/new_mcdef.php | 74 ++++ .../webinterface/computers/new_menuentry.dwt | 191 +++++++++ .../webinterface/computers/new_menuentry.php | 150 +++++++ ldap-site-mngmt/webinterface/computers/new_pxe.dwt | 175 ++++++++ ldap-site-mngmt/webinterface/computers/new_pxe.php | 130 ++++++ ldap-site-mngmt/webinterface/computers/pxe.dwt | 476 +++++++++++++++++++++ ldap-site-mngmt/webinterface/computers/pxe.php | 252 +++++++++++ ldap-site-mngmt/webinterface/computers/pxe_add.php | 228 ++++++++++ .../webinterface/computers/pxe_change.php | 437 +++++++++++++++++++ .../webinterface/computers/pxe_copy.php | 180 ++++++++ .../webinterface/computers/pxe_delete.php | 42 ++ 61 files changed, 9394 insertions(+) create mode 100644 ldap-site-mngmt/webinterface/computers/computers.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/computers.php create mode 100644 ldap-site-mngmt/webinterface/computers/computers_footer.inc.php create mode 100644 ldap-site-mngmt/webinterface/computers/computers_header.inc.php create mode 100644 ldap-site-mngmt/webinterface/computers/computers_menu.php create mode 100644 ldap-site-mngmt/webinterface/computers/computers_menu.save.php create mode 100644 ldap-site-mngmt/webinterface/computers/computers_start.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/delete_confirm.php create mode 100644 ldap-site-mngmt/webinterface/computers/dhcphost.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/dhcphost.php create mode 100644 ldap-site-mngmt/webinterface/computers/dhcphost_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/group.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/group.php create mode 100644 ldap-site-mngmt/webinterface/computers/group_add.php create mode 100644 ldap-site-mngmt/webinterface/computers/group_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/group_delete.php create mode 100644 ldap-site-mngmt/webinterface/computers/groupoverview.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/groupoverview.php create mode 100644 ldap-site-mngmt/webinterface/computers/host.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/host.php create mode 100644 ldap-site-mngmt/webinterface/computers/host_add.php create mode 100644 ldap-site-mngmt/webinterface/computers/host_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/host_delete.php create mode 100644 ldap-site-mngmt/webinterface/computers/hostoverview.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/hostoverview.php create mode 100644 ldap-site-mngmt/webinterface/computers/hwhost.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/hwhost.php create mode 100644 ldap-site-mngmt/webinterface/computers/hwhost_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/machineconfig_default.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/machineconfig_default.php create mode 100644 ldap-site-mngmt/webinterface/computers/mc_wochenplan.php create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef.php create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef_add.php create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef_copy.php create mode 100644 ldap-site-mngmt/webinterface/computers/mcdef_delete.php create mode 100644 ldap-site-mngmt/webinterface/computers/menu.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/menuentry.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/menuentry.php create mode 100644 ldap-site-mngmt/webinterface/computers/menuentry_add.php create mode 100644 ldap-site-mngmt/webinterface/computers/menuentry_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/menuentry_delete.php create mode 100644 ldap-site-mngmt/webinterface/computers/menuposition_down.php create mode 100644 ldap-site-mngmt/webinterface/computers/menuposition_up.php create mode 100644 ldap-site-mngmt/webinterface/computers/new_group.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/new_group.php create mode 100644 ldap-site-mngmt/webinterface/computers/new_host.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/new_host.php create mode 100644 ldap-site-mngmt/webinterface/computers/new_mcdef.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/new_mcdef.php create mode 100644 ldap-site-mngmt/webinterface/computers/new_menuentry.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/new_menuentry.php create mode 100644 ldap-site-mngmt/webinterface/computers/new_pxe.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/new_pxe.php create mode 100644 ldap-site-mngmt/webinterface/computers/pxe.dwt create mode 100644 ldap-site-mngmt/webinterface/computers/pxe.php create mode 100644 ldap-site-mngmt/webinterface/computers/pxe_add.php create mode 100644 ldap-site-mngmt/webinterface/computers/pxe_change.php create mode 100644 ldap-site-mngmt/webinterface/computers/pxe_copy.php create mode 100644 ldap-site-mngmt/webinterface/computers/pxe_delete.php (limited to 'ldap-site-mngmt/webinterface/computers') diff --git a/ldap-site-mngmt/webinterface/computers/computers.dwt b/ldap-site-mngmt/webinterface/computers/computers.dwt new file mode 100644 index 00000000..ec6d0cbc --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers.dwt @@ -0,0 +1,79 @@ + + + + {SEITENTITEL} + + + + + + + + + + +
+ + + + + +

Rechner und IP Management

+
+ + + + +
+

Startseite +  >>  {AU}  [ {DOMAIN} ]

+
+
+ + + + +
+ {LOGIN} +
+
+ + + + + +
{MAINMENU}
+ +
+ + + + + + + + + + + +
+ + +
+ + {NAVIGATION} + +
+
+ + +
+ + {HAUPTFENSTER} + +
+
+ + + + diff --git a/ldap-site-mngmt/webinterface/computers/computers.php b/ldap-site-mngmt/webinterface/computers/computers.php new file mode 100644 index 00000000..46b686df --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers.php @@ -0,0 +1,28 @@ + \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/computers_footer.inc.php b/ldap-site-mngmt/webinterface/computers/computers_footer.inc.php new file mode 100644 index 00000000..311721c5 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers_footer.inc.php @@ -0,0 +1,18 @@ +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/computers/computers_header.inc.php b/ldap-site-mngmt/webinterface/computers/computers_header.inc.php new file mode 100644 index 00000000..d51a42d1 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers_header.inc.php @@ -0,0 +1,21 @@ + "computers.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, "AU" => $au_ou, "DOMAIN" => $assocdom, "USERCN" => $usercn)); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/computers_menu.php b/ldap-site-mngmt/webinterface/computers/computers_menu.php new file mode 100644 index 00000000..9b681bee --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers_menu.php @@ -0,0 +1,382 @@ + "computers.php", + "text" => "Übersicht", + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), + array("link" => "hostoverview.php", + "text" => "Rechner", + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), + array("link" => "groupoverview.php", + "text" => "Rechnergruppen", + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")), + array("link" => "machineconfig_default.php", + "text" => "Default MachineConfigs", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_mcdef.php", + "text" => "Neue MachineConfig", + "zugriff" => array("MainAdmin","HostAdmin")), + array("link" => "new_pxe.php", + "text" => "Neues PXE Bootmenü", + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin"))); + + # Submenu + #$comps = array(); + $computers_array = get_hosts($auDN,array("dn","hostname","ou")); + #if (count($computers_array) != 0){ + for($n=0;$n "mcdef.php?dn=".$machineconfigs[$m]['dn']."&mnr=1&sbmnr=".$n."&mcnr=".$m, + "text" => $machineconfigs[$m]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + } + }else{$mcc = array();} + + if (count($pxeconfigs) != 0){ + $pxec = array(); + for ($p=0;$p "pxe.php?dn=".$pxeconfigs[$p]['dn']."&mnr=1&sbmnr=".$n."&mcnr=".$z, + "text" => $pxeconfigs[$p]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + } + }else{$pxec = array();} + + + $comps[] = array("link" => "host.php?dn=".$computers_array[$n]['dn']."&sbmnr=".$n, + "text" => $computers_array[$n]['hostname'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + # print_r($comps); echo "
"; + $mccpxec = array_merge($mcc,$pxec); + $compmc[] = $mccpxec; + + } + #} + $comps[] = array("link" => "new_host.php?sbmnr=".$n, + "text" => "Neuer Rechner", + "zugriff" => array("MainAdmin","HostAdmin")); + + $groups_array = get_groups($auDN,array("dn","cn")); + for($n=0;$n "mcdef.php?dn=".$machineconfigs[$m]['dn']."&mnr=2&sbmnr=".$n."&mcnr=".$m, + "text" => $machineconfigs[$m]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + } + }else{$mcg = array();} + + if (count($pxeconfigs) != 0){ + $pxeg = array(); + for ($p=0;$p "pxe.php?dn=".$pxeconfigs[$p]['dn']."&mnr=2&sbmnr=".$n."&mcnr=".$z, + "text" => $pxeconfigs[$p]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + } + }else{$pxeg = array();} + $groups = array(); + $groups[] = array("link" => "group.php?dn=".$groups_array[$n]['dn']."&sbmnr=".$n, + "text" => $groups_array[$n]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + + $mcgpxeg = array_merge($mcg,$pxeg); + $groupmc[] = $mcgpxeg; + } + $groups[] = array("link" => "new_group.php?sbmnr=".$n, + "text" => "Neue Gruppe", + "zugriff" => array("MainAdmin","HostAdmin")); + # print_r($compmc); echo "

"; + # print_r($groupmc); echo "

"; + + # default machine-configs + $mcdef_array = get_machineconfigs("cn=computers,".$auDN,array("dn","cn","timerange")); + for($n=0;$n "mcdef.php?dn=".$mcdef_array[$n]['dn']."&mnr=3&sbmnr=".$n, + "text" => $mcdef_array[$n]['cn'], + "zugriff" => array("MainAdmin","HostAdmin","DhcpAdmin")); + } + + $submenu = array(array(), + $comps, + $groups, + $defmc, + array()); + #echo "submenu: ";print_r($submenu);echo "

"; + + $subsubmenu = array(array(array(array())), + $compmc, + $groupmc, + array(array(array())), + array(array(array()))); + #echo "subsubmenu: ";print_r($subsubmenu);echo "

"; + + # Zusammenstellen der Menuleiste + $template->define_dynamic("Hauptmenu", "Menu"); + $template->define_dynamic("Submenu", "Menu"); + $template->define_dynamic("Subsubmenu", "Menu"); + $i=0; + + $maxmenu = count($hauptmenu); + foreach($hauptmenu as $item){ + $template->clear_parse("SUBMENU_LIST"); + + if($item['zugriff'] === "alle" || vergleicheArrays($rollen , $item['zugriff'])) { + + ######################################################################### + # SUBMENU + + $subempty = 0; + $j=0; + $maxsub = count($submenu[$mnr]); + #echo "_"; print_r($maxsub); echo "_"; + if($maxsub > 0){ + foreach($submenu[$mnr] as $item2) { + + $template->clear_parse("SUBSUBMENU_LIST"); + + + if($item2['zugriff'] === "alle" || vergleicheArrays($rollen, $item2['zugriff'])) { + + ######################################################################## + # SUBSUBMENU + $subsubempty = 0; + $k=0; + $maxsubsub = count($subsubmenu[$mnr][$sbmnr]); + #print_r($maxsubsub); + if ($maxsubsub > 0){ + if($sbmnr >= 0){ + + foreach($subsubmenu[$mnr][$sbmnr] as $item3) { + + if($item3['zugriff'] === "alle" || vergleicheArrays($rollen, $item3['zugriff'])) { + + if($j != $sbmnr || $i != $mnr){ + + $template->assign(array("SUBSUB" => "")); + # "LINK_S" => "", + # "TEXT_S" => "")); + $template->parse("SUBSUBMENU_LIST", ".Subsubmenu"); + $template->clear_dynamic("Subsubmenu"); + $template->clear_parse("SUBSUBMENU_LIST"); + } + else{ + if ($k==0) { + if ($mcnr==0) { + if($maxsubsub == 1){$zwisch="branchbottom2";} + else {$zwisch="branch2";} + $lastaktive=true; + $farb="#505050"; + } + else{ + if($maxsubsub == 1){$zwisch="branchbottom2";} + else {$zwisch="branch2";} + $farb="#A0A0A0"; + $lastaktive=false; + } + } + else { + if ($mcnr==$k) { + if($maxsubsub == $k+1){$zwisch="branchbottom2";} + else {$zwisch="branch2";} + $lastaktive=true; + $farb="#505050"; + } + else { + $farb="#A0A0A0"; + if($maxsubsub == $k+1){$zwisch="branchbottom2";} + else {$zwisch="branch2";} + # if ($lastaktive) {$zwisch="branch";} + # else {$zwisch="branch";} + $lastaktive=false; + } + } + $htmlcode= " + + + + +   +   + + + ".$item3['text']." +   + + "; + $template->assign(array("SUBSUB" => $htmlcode)); + $template->assign(array("FARBE_MC" => $farb)); + $template->parse("SUBSUBMENU_LIST", ".Subsubmenu"); + $template->clear_dynamic("Subsubmenu"); + + } + } + else { + $subsubempty++; + } + $k=$k+1; + } + } + + if($subsubempty == count($subsubmenu[$mnr][$sbmnr])) { + $template->assign(array("SUBSUB" => "")); + # "LINK_S" => "", + # "TEXT_S" => "")); + $template->parse("SUBSUBMENU_LIST", ".Subsubmenu"); + $template->clear_dynamic("Subsubmenu"); + $template->clear_parse("SUBSUBMENU_LIST"); + } + + } + $template->assign(array("SUBSUB" => "")); + # SUBSUBMENU + ######################################################################## + if($i != $mnr){ + $template->assign(array("SUB" => "")); + # "LINK_S" => "", + # "TEXT_S" => "")); + $template->parse("SUBMENU_LIST", ".Submenu"); + $template->clear_dynamic("Submenu"); + } + else{ + if ($j==0) { + if ($sbmnr==0) { + if($maxsub == 1){$zwisch2="";} + else {$zwisch2="";} + $lastaktive=true; + $farb="#505050"; + } + else{ + if(count($subsubmenu[$i][$j][0]) != 0){ + if($maxsub == 1){$zwisch2=" + ";} + else {$zwisch2=" + ";} + }else{$zwisch2="";} + $farb="#A0A0A0"; + $lastaktive=false; + } + } + else { + if ($sbmnr==$j) { + if($maxsub == $j+1){$zwisch2="";} + else {$zwisch2="";} + $lastaktive=true; + $farb="#505050"; + } + else { + if(count($subsubmenu[$i][$j][0]) != 0){ + if($maxsub == $i+1){$zwisch2=" + ";} + else {$zwisch2=" + ";} + }else{$zwisch2="";} + $farb="#A0A0A0"; + $lastaktive=false; + } + } + $htmlcode= " + + + + +   + ".$zwisch2." +   + + ".$item2['text']." +   + + "; + $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"); + + } + $template->assign(array("SUBSUB" => "")); + # SUBMENU + ##################################################################### + + if ($i==0) { + if ($mnr==0) { + if(count($submenu[$i][0]) != 0){ + if($maxmenu == 1){$zwisch="";} # {$zwisch="";} + else {$zwisch="";} + }else{$zwisch="";} + $lastaktive=true; + $farb="#505050"; + } + else{ + if(count($submenu[$i][0]) != 0){ + if($maxmenu == 1){$zwisch=" + ";} + else {$zwisch=" + ";} + }else{$zwisch="";} + $farb="#A0A0A0"; + $lastaktive=false; + } + } + else { + if ($mnr==$i) { + if(count($submenu[$mnr][0]) != 0){ + if($maxmenu == $i+1){$zwisch="";} + else {$zwisch="";} + }else{$zwisch="";} + $lastaktive=true; + $farb="#505050"; + } + else { + + if(count($submenu[$i][0]) != 0){ + if($maxmenu == $i+1){$zwisch=" + ";} + else {$zwisch=" + ";} + }else{$zwisch="";} + $farb="#A0A0A0"; + $lastaktive=false; + } + } + $template->assign(array("ICON" => $zwisch, + "FARBE" => $farb, + "LINK_M" => $item["link"], + "TEXT_M" => $item["text"])); + $template->parse("HAUPTMENU_LIST", ".Hauptmenu"); + $template->clear_dynamic("Hauptmenu"); + } + $i=$i+1; + } + if ($lastaktive) {$template->assign(array("ENDE" => ""));} + else{ + $template->assign(array("ENDE" => "")); + } +} +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/computers_menu.save.php b/ldap-site-mngmt/webinterface/computers/computers_menu.save.php new file mode 100644 index 00000000..183d9309 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers_menu.save.php @@ -0,0 +1,188 @@ + "computers.php", + "text" => "Übersicht", + "zugriff" => "alle"), + array("link" => "hostoverview.php", + "text" => "Rechner", + "zugriff" => array("MainAdmin")), + array("link" => "computers.php", + "text" => "Neuen Rechner anlegen", + "zugriff" => array("MainAdmin")), + array("link" => "groupoverview.php", + "text" => "Rechnergruppen", + "zugriff" => array("MainAdmin")), + array("link" => "computers.php", + "text" => "Neue Gruppe anlegen", + "zugriff" => array("MainAdmin"))); + + # Submenu + $computers_array = get_hosts($auDN,array("dn","hostname","ou")); + for($n=0;$n "host.php?dn=".$computers_array[$n]['dn']."&sbmnr=".$n, + "text" => $computers_array[$n]['hostname'], + "zugriff" => array("MainAdmin")); + } + $groups_array = get_groups($auDN,array("dn","cn")); + for($n=0;$n "group.php?dn=".$groups_array[$n]['dn']."&sbmnr=".$n, + "text" => $groups_array[$n]['cn'], + "zugriff" => array("MainAdmin")); + } + $submenu = array(array(array()), + $comps, + array(array()), + $groups, + array(array())); + + $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]); + 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= " + + + + +   + + + ".$item2['text']." +   + + "; + $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="";} + else {$zwisch="";} + }else{$zwisch="";} + $lastaktive=true; + $farb="#505050"; + } + else{ + if(count($submenu[$i][0]) != 0){ + if($maxmenu == 1){$zwisch=" + ";} + else {$zwisch=" + ";} + }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=" + ";} + else {$zwisch=" + ";} + }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/computers/computers_start.dwt b/ldap-site-mngmt/webinterface/computers/computers_start.dwt new file mode 100644 index 00000000..09cade01 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/computers_start.dwt @@ -0,0 +1,42 @@ + + + + + + + + + + + +

Modul - Rechner und Rechnergruppen Management:

+

Dieses Modul dient der Verwaltung der Rechner und Rechnergruppen in ihrer Abteilung + (AU), inklusive ihrer spezifischen Rechner- und PXE Boot Konfigurationen
+ Benutzen Sie die Navigation links, um die einzelnen Verwaltungsbereiche anzusteuern:

+
    +
  • Rechner

    + Hier verwalten Sie ihre Rechner (anlegen, bearbeiten, löschen), und können zu dem + einige Hardware-Parameter festlegen. Daneben verwalten Sie hier rechner-spezifische + Computer-Profile (MachineConfig) und PXE Boot Konfigurationen. +
  • +
  • Rechnergruppen

    + Hier verwalten Sie die Rechnergruppen (anlegen, bearbeiten, löschen), sowie + ihre gemeinsamen Hardware-Parameter. Daneben verwalten Sie hier gruppen-spezifische + Computer-Profile (MachineConfig) und PXE Boot Konfigurationen. +
  • +
  • Default MachineConfig

    + Hier verwalten Sie ihre Default Computer-Profile (bearbeiten, löschen, kopieren), + d.h. Computer-Profile, die beim booten von Rechnern verwendet werden, für die + keine rechner- oder gruppen-spezifischen MachineConfigs angelegt sind. +
  • +
  • Neue MachineConfig

    + Hier köennen Sie neue Computer-Profile (MachineConfigs) als rechner-, gruppen- + spezifische, oder Default MachineConfigs anlegen. +
  • +
  • Neues PXE Bootmenü

    + Hier können Sie neue PXE Bootmenüs (PXEConfigs) für ihre Rechner oder + Rechnergruppen anlegen. +
  • +
+ +
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/delete_confirm.php b/ldap-site-mngmt/webinterface/computers/delete_confirm.php new file mode 100644 index 00000000..c3f2bc8b --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/delete_confirm.php @@ -0,0 +1,39 @@ + + + AU Management + + + + + + + +
+ Wollen Sie das Objekt ".$name." wirklich löschen?

+
+ Falls ja:

+ + + + +

+
+
+ Falls, nein:

+ +
+
+ +"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.dwt b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt new file mode 100644 index 00000000..8ab5c7af --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.dwt @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Rechner   {HOSTNAME}

{HOSTLINK} Allgemein

DHCP/RBS

{HWLINK} Hardware

 
+ + + + + + + + + + + + + + + + + {HOST_DHCPOPT} + +

DHCP Setup

  
Eingebunden in DHCP Dienst:   + {DHCPCONT}
+ +
+ + + + + + + + + + {RBS} + + + {RBS_DHCPOPT} + +

PXE/TFTP Setup

 
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost.php b/ldap-site-mngmt/webinterface/computers/dhcphost.php new file mode 100644 index 00000000..5267157c --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/dhcphost.php @@ -0,0 +1,278 @@ +
"; +$dhcphlpcont = $host['dhcphlpcont']; +$objectDN = $dhcphlpcont; +$rbsDN = $host['hlprbservice']; + +$rbs_dhcpopt = ""; +$host_dhcpopt = ""; + +# DHCP Daten +if ($dhcphlpcont == ""){ + $dhcp = "Rechner ist in keinem DHCP Dienst angemeldet
+ + DHCP Dienst auswählen: "; + $objecttype = "nodhcp"; + $rbs = " + Sie müssen den Rechner zuerst in einem DHCP Dienst anmelden, bevor Sie ihn + einem Remote Boot Dienst zuordnen können
(DHCP Optionen!!).
+ + "; +}else{ + # Subnet? + $objecttype = "service"; + $dhcp = ""; + $ocarray = get_node_data($dhcphlpcont,array("objectclass","dhcphlpcont")); + #print_r($ocarray); echo "
"; + $sub = array_search('dhcpSubnet', $ocarray['objectclass']); + #print_r($sub); + if ($sub !== false ){ + $objecttype = "subnet"; + $exp0 = explode(',',$dhcphlpcont); + $expsub = explode('=',$exp0[0]); $dhcpsub = $expsub[1]; + $dhcp .= "Subnet ".$dhcpsub." / "; + $dhcphlpcont = $ocarray['dhcphlpcont']; + } + $exp1 = explode(',',$dhcphlpcont); + $expdhcp = explode('=',$exp1[0]); $dhcpserv = $expdhcp[1]; + $expdhcpau = explode('=',$exp1[2]); $dhcpau = $expdhcpau[1]; + $dhcp .= "Service ".$dhcpserv." / AU ".$dhcpau."
+ + DHCP Dienst ändern: "; + + + $fixedaddselopt = ""; + switch ( $host['dhcpoptfixed-address'] ){ + case "": + $fixedaddress = " -
(dynamische Vergabe)"; + if ( $hostip[0] != "" ){ + $fixedaddselopt .= ""; + } + $fixedaddselopt .= ""; + break; + case "ip": + $fixedaddress = "".$hostip[0]."
(Fixe IP Adresse)"; + $fixedaddselopt .= " + "; + break; + case "hostname": + $fixedaddress = "".$host['hostname']."
(Fixe IP Adresse über Hostnamen aufgelöst)"; + if ( $hostip[0] != "" ){ + $fixedaddselopt .= ""; + } + $fixedaddselopt .= ""; + break; + } + + + $host_dhcpopt = "DHCP Optionen: + + hardware ethernet:   + ".$host['hwaddress']."  +   + + + fixed-address:   + ".$fixedaddress."  + + + + "; + + ########################################################### + # RBS Setup + $rbs_selectbox = ""; + $rbs_dhcpopt = ""; + $altrbs = alternative_rbservices($rbsDN); + + if (count($altrbs) != 0){ + $rbs_selectbox .= " + "; + } + + # RBS Daten + if ($rbsDN == ""){ + + $rbs = "Remote Boot Dienst:   + + Rechner ist in keinem Remote Boot Dienst angemeldet
+ + RBS auswählen:
".$rbs_selectbox; + }else{ + + $rbs = ""; + $rbsdata = get_node_data($rbsDN,array("tftpserverip")); + #print_r($rbsdata); echo "
"; + $exp2 = explode(',',$host['hlprbservice']); + $exprbs = explode('=',$exp2[0]); $rbserv = $exprbs[1]; + $exprbsau = explode('=',$exp2[2]); $rbsau = $exprbsau[1]; + $rbs .= "Remote Boot Dienst:   + + Remote Boot Service ".$rbserv." / AU ".$rbsau."
+ TFTP (Boot) Server: ".$rbsdata['tftpserverip']."
+ + RBS ändern:
".$rbs_selectbox; + + $rbs_dhcpopt = "DHCP Optionen: + + next-server  (TFTP Server): + ".$host['dhcpoptnext-server']."  + + + filename  (initiale remote Bootdatei): + ".$host['dhcpoptfilename']."  + "; + } + +} + +$template->assign(array("HOSTDN" => $hostDN, + "HOSTNAME" => $host['hostname'], + "DOMAINNAME" => $host['domainname'], + "HWADDRESS" => $host['hwaddress'], + "IPADDRESS" => $hostip[0], + "DESCRIPTION" => $host['description'], + "OLDDHCP" => $objectDN, + "OLDFIXADD" => $host['dhcpoptfixed-address'], + "OLDRBS" => $rbsDN, + "DHCPCONT" => $dhcp, + "HOST_DHCPOPT" => $host_dhcpopt, + "RBS" => $rbs, + "RBS_DHCPOPT" => $rbs_dhcpopt, + "NEXTSERVER" => $host['dhcpoptnext-server'], + "FILENAME" => $host['dhcpoptfilename'], + "HOSTLINK" => "", + "HWLINK" => "", + "AUDN" => $auDN, + "SBMNR" => $sbmnr)); + + +########################################################## +# DHCP Setup + +$altdhcp = alternative_dhcpobjects($objecttype,$objectDN,$hostip[0]); +#echo "

";print_r($altdhcp); + +$template->assign(array("ALTDN" => "", + "ALTCN" => "", + "ALTAU" => "")); +if (count($altdhcp) != 0){ +$template->define_dynamic("Altdhcp", "Webseite"); + foreach ($altdhcp as $item){ + + $template->assign(array("ALTDN" => $item['dn'], + "ALTCN" => $item['cn'], + "ALTAU" => $item['au'],)); + $template->parse("ALTDHCP_LIST", ".Altdhcp"); + } +} + + +########################################################### +# RBS Setup + +/*$altrbs = alternative_rbservices($rbsDN); +#print_r($altrbs); echo "

"; +$template->assign(array("ALTRBSDN" => "", + "ALTRBSCN" => "", + "ALTRBSAU" => "")); +if (count($altrbs) != 0){ +$template->define_dynamic("Altrbs", "Webseite"); + foreach ($altrbs as $item){ + $template->assign(array("ALTRBSDN" => $item['dn'], + "ALTRBSCN" => $item['cn'], + "ALTRBSAU" => $item['au'],)); + $template->parse("ALTRBS_LIST", ".Altrbs"); + } +}*/ + + +################################################################################### + +include("computers_footer.inc.php"); + + + +/* + + DHCP Option hardware ethernet:   + {HWADDRESS}   + + + + DHCP Option fixed-address:   + {IPADDRESS}   + + + + + + + + TFTP Server
DHCP Option next-server:
  + {NEXTSERVER}   + + + + PXE initiale Bootdatei
DHCP Option filename:
  + {FILENAME}   + + + + + */ +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/dhcphost_change.php b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php new file mode 100644 index 00000000..907fae8f --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/dhcphost_change.php @@ -0,0 +1,177 @@ +"; +echo "old dhcp:"; print_r($olddhcp); echo "
"; +echo "new rbs:"; print_r($rbs); echo "
"; +echo "old rbs:"; print_r($oldrbs); echo "
"; +echo "Host DN:"; print_r($hostDN); echo "
"; +echo "submenuNR:"; print_r($sbmnr); echo "

";*/ + + +$seconds = 40; +$url = 'dhcphost.php?dn='.$hostDN.'&sbmnr='.$sbmnr; + +echo " + + + AU Management + + + + +
"; + +########################################## +# DHCP + +if ($dhcp != "none" && $dhcp != $olddhcp){ + if ($dhcp != ""){ + $exp = ldap_explode_dn($dhcp, 1); + $dhcpcn = $exp[0]; + $dhcpau = $exp[2]; + + $entrydhcp ['dhcphlpcont'] = $dhcp; + if ($olddhcp != ""){ + echo "DHCP replace "; print_r($olddhcp); echo " with "; print_r($entrydhcp); echo "
"; + if ($result = ldap_mod_replace($ds,$hostDN,$entrydhcp)){ + $mesg = "Rechner erfolgreich in DHCP ".$dhcpcn." [Abt.: ".$dhcpau."] angemeldet

"; + }else{ + $mesg = "Fehler beim ändern des DHCP Dienstes zu ".$dhcpcn."!

"; + } + }else{ + if ( $hostip != "" ){ + $entrydhcp ['dhcpoptfixed-address'] = "ip"; + } + echo "DHCP add "; print_r($entrydhcp); echo "
"; + if ($result = ldap_mod_add($ds,$hostDN,$entrydhcp)){ + $mesg = "Rechner erfolgreich in DHCP ".$dhcpcn." [Abt.: ".$dhcpau."] angemeldet

"; + }else{ + $mesg = "Fehler beim ändern des DHCP Dienstes zu ".$dhcpcn."!

"; + } + } + }else{ + $entrydhcp ['dhcphlpcont'] = array(); + if ( $fixedaddress != "" ){ + $entrydhcp ['dhcpoptfixed-address'] = array(); + } + echo "DHCP delete "; echo "
"; + if ($result = ldap_mod_del($ds,$hostDN,$entrydhcp)){ + $mesg = "Rechner erfolgreich aus DHCP gelöscht

"; + }else{ + $mesg = "Fehler beim löschen aus DHCP Dienst!

"; + } + } + +} +if ($dhcp == "none"){ + echo " DHCP none
"; +} + +# DHCP Option fixed-address +if ($fixedaddress != "none" && $fixedaddress != $oldfixedaddress){ + if ($fixedaddress != ""){ + $entryfixadd ['dhcpoptfixed-address'] = $fixedaddress; + if ($oldfixedaddress != ""){ + echo "Fixed Address ändern"; echo "
"; + if ($result = ldap_mod_replace($ds,$hostDN,$entryfixadd)){ + $mesg = "Option Fixed-Address erfolgreich auf ".$fixedaddress." geändert

"; + }else{ + $mesg = "Fehler beim ändern der Option Fixed-Address auf ".$fixedaddress."!

"; + } + }else{ + echo "Fixed Address auf IP Adresse setzen"; echo "
"; + if ($result = ldap_mod_add($ds,$hostDN,$entryfixadd)){ + $mesg = "Option Fixed-Address erfolgreich auf ".$fixedaddress." gesetzt

"; + }else{ + $mesg = "Fehler beim setzen der Option Fixed-Address auf ".$fixedaddress."!

"; + } + } + }else{ + $entryfixadd ['dhcpoptfixed-address'] = array(); + echo "No Fixed Address"; echo "
"; + if ($result = ldap_mod_del($ds,$hostDN,$entryfixadd)){ + $mesg = "Option Fixed-Address erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen der Option Fixed-Address!

"; + } + } +} + + +########################################## +# RBS + +if ($rbs != "none" && $rbs != $oldrbs){ + if ($rbs != ""){ + $exp = ldap_explode_dn($rbs, 1); + $rbscn = $exp[0]; + $rbsau = $exp[2]; + + $dhcpdata = get_node_data($rbs,array("tftpserverip","initbootfile")); + $entryrbs ['hlprbservice'] = $rbs; + $entryrbs ['dhcpoptnext-server'] = $dhcpdata['tftpserverip']; + $entryrbs ['dhcpoptfilename'] = $dhcpdata['initbootfile']; + if ($oldrbs != ""){ + echo "RBS replace "; print_r($oldrbs); echo " with "; print_r($entryrbs); echo "
"; + if ($result = ldap_mod_replace($ds,$hostDN,$entryrbs)){ + rbs_adjust_host($hostDN, $rbs); + $mesg = "Remote Boot Service erfolgreich zu ".$rbscn." [Abt.: ".$rbsau."] geändert

"; + }else{ + $mesg = "Fehler beim ändern des Remote Boot Services zu ".$rbscn."!

"; + } + }else{ + echo "RBS add "; print_r($entryrbs); echo "
"; + if ($result = ldap_mod_add($ds,$hostDN,$entryrbs)){ + rbs_adjust_host($hostDN, $rbs); + $mesg = "Remote Boot Service erfolgreich zu ".$rbscn." [Abt.: ".$rbsau."] geändert

"; + }else{ + $mesg = "Fehler beim ändern des Remote Boot Services zu ".$rbscn."!

"; + } + } + }else{ + $entryrbs ['hlprbservice'] = array(); + $entryrbs ['dhcpoptnext-server'] = array(); + $entryrbs ['dhcpoptfilename'] = array(); + echo "RBS delete "; echo "
"; + if ($result = ldap_mod_del($ds,$hostDN,$entryrbs)){ + $mesg = "Rechner erfolgreich aus RBS gelöscht

"; + }else{ + $mesg = "Fehler beim löschen aus RBS!

"; + } + } +} +if ($rbs == "none"){ + echo "RBS none
"; +} + + +##################### + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/group.dwt b/ldap-site-mngmt/webinterface/computers/group.dwt new file mode 100644 index 00000000..cda53f18 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/group.dwt @@ -0,0 +1,397 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Daten bearbeiten Gruppe  {GROUPCN} 

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Eindeutiger Gruppenname (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
+ +   +
Beschreibung:   + +   +
Gruppen-Rechner:   + + Aktuelle Mitglieder (zum Löschen bitte Häkchen setzen):
+ +   {MEMBER}
+ +
+ + Als neues Mitglied aufnehmen (Mehrfachauswahl möglich)
+ +
+

Gruppe - {GROUPCN} - löschen:

+ + + + + + + + + + + + + +
+ Die Rechnergruppe wird komplett gelöscht,
d.h. inklusive aller spezifisch für sie angelegten + Hardware-Profile (MachineConfig) und PXE Bootmenüs. +
+ +

Wochen Übersicht Machine Configs Gruppe  {GROUPCN}  :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UhrzeitMontagDienstagMittwochDonnerstagFreitagSamstagSonntag
0       
        
2       
        
4       
        
6       
        
8       
        
10       
        
12       
        
14       
        
16        
        
18       
        
20       
        
22       
        

Legende:

+ + + + + + + + + + + + + + + + + + + + + +
Machine Config Farbe
Keine Konfiguration    
{DESCRIPTION}     
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/group.php b/ldap-site-mngmt/webinterface/computers/group.php new file mode 100644 index 00000000..13819e62 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/group.php @@ -0,0 +1,120 @@ +assign(array("GROUPDN" => $groupDN, + "GROUPCN" => $group['cn'], + "GROUPDESC" => $group['description'], + # "MEMBERS" => $anzahlmember, + "MEMBER" => $group['member'], + "DHCPCONT" => $group['dhcphlpcont'], + "AUDN" => $auDN, + "SBMNR" => $sbmnr)); + +$template->define_dynamic("Members", "Webseite"); + +if ( count($group['member']) == 1 ){ + $member = $group['member']; + $group = array(); + $group['member'][] = $member; +} + +if ( count($group['member']) != 0 ){ + sort($group['member']); + foreach ($group['member'] as $member){ + $exp = explode(',',$member); + $memberexp = explode('=',$exp[0]); + $membername = $memberexp[1]; + $template->assign(array("MEMBERDN" => $member, + "MEMBER" => $membername)); + $template->parse("MEMBERS_LIST", ".Members"); + } +} + +############################################## +# neues Member anlegen ... +$hosts_array = get_hosts($auDN,array("dn","hostname")); +# print_r($hosts_array); echo "

"; +$groups = get_groups($auDN, array("member")); +$template->assign(array("HN" => "")); + +foreach ($groups as $group){ + for ($i=0; $i < count($hosts_array); $i++){ + if (count($group['member']) > 1){ + foreach ($group['member'] as $item){ + if ($hosts_array[$i]['dn'] == $item){ + array_splice($hosts_array, $i, 1); + $i--; # da ja ein Member gelöscht wurde + } + } + } + if (count($group['member']) == 1){ + if ($hosts_array[$i]['dn'] == $group['member']){ + array_splice($hosts_array, $i, 1); + } + } + } +} +#print_r($hosts_array);echo"
"; + +$template->define_dynamic("Hosts", "Webseite"); +foreach ($hosts_array as $item){ + $template->assign(array("HDN" => $item['dn'], + "HN" => $item['hostname'], + "HOSTNUMBER" => 5)); + $template->parse("HOSTS_LIST", ".Hosts"); +} + + +########################################################## +# MC Wochenübersicht +$mc_array = get_machineconfigs($groupDN,array("dn","cn","timerange","description")); +# print_r($mc_array); +for ($i=0; $i 1 ){ + foreach ($mc_array[$i]['timerange'] as $tr){ + $exptime = array_merge(explode('_',$tr),$mc_array[$i]['description']); + $timeranges[$i][] = $exptime; # Für grafische Wo-Ansicht + } + }else{ + $exptime = array_merge(explode('_',$mc_array[$i]['timerange']), $mc_array[$i]['description']); + $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht + } +} +include("mc_wochenplan.php"); + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/group_add.php b/ldap-site-mngmt/webinterface/computers/group_add.php new file mode 100644 index 00000000..dfc7fbe7 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/group_add.php @@ -0,0 +1,84 @@ +"; +echo "groupcn:"; print_r($groupcn); echo "
"; +echo "groupdesc:"; print_r($groupdesc); echo "
"; +echo "members to add:"; print_r($addmember); echo "
"; +*/ + +$seconds = 2; + +echo " + + + AU Management + + + + +
"; + +if ( $groupcn != ""){ + + # Formulareingaben anpassen + $expgr = explode(" ",$groupcn); + foreach ($expgr as $word){$expuc[] = ucfirst($word);} + $groupcn = implode(" ",$expuc); + $groupcn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $groupcn); + + # Host Objekt anlegen + $brothers = get_hosts($auDN,array("groupcn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['groupcn'] == $groupcn ){ + $mesg = "Es existiert bereits eine Gruppe mit dem eingegebenen Namen (CN)!
+ Bitte geben Sie einen anderen Namen (CN) ein.

"; + $get_groupdesc = str_replace ( " ", "_", $groupdesc ); + $url = "new_group.php?groupcn=Hier_anderen_CN_eingeben&groupdesc=".$get_groupdesc; + $brother = 1; + break; + } + } + if ($brother == 0){ + $groupDN = "cn=".$groupcn.",cn=groups,".$auDN; + # print_r($groupDN); echo "
"; + + if (add_group($groupDN,$groupcn,$groupdesc,$addmember)){ + $mesg .= "
Neue Rechnergruppe erfolgreich angelegt
"; + } + else{ + $mesg .= "
Fehler beim anlegen der Rechnergruppe!
"; + } + + $url = 'groupoverview.php'; + } +} + + +elseif ( $groupcn == ""){ + + $get_groupdesc = str_replace ( " ", "_", $groupdesc ); + $mesg = "Sie haben den CN der neuen Gruppe nicht angegeben. Dieser ist aber ein notwendiges Attribut.
+ Bitte geben Sie ihn an.

"; + $url = "new_group.php?ou=Hier_CN_eingeben&groupdesc=".$get_groupdesc; +} + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/group_change.php b/ldap-site-mngmt/webinterface/computers/group_change.php new file mode 100644 index 00000000..cb26a429 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/group_change.php @@ -0,0 +1,252 @@ +"; +echo "old groupcn:"; print_r($oldgroupcn); echo "
"; +echo "new groupdesc:"; print_r($groupdesc); echo "
"; +echo "old groupdesc:"; print_r($oldgroupdesc); echo "

"; + +echo "members to delete:"; print_r($delmember); echo "

"; +echo "members to add:"; print_r($addmember); echo "

"; + +echo "Group DN:"; print_r($groupDN); echo "
"; +echo "submenuNR:"; print_r($submenu); echo "

"; +*/ + +$seconds = 2; +$url = 'group.php?dn='.$groupDN.'&sbmnr='.$sbmnr; + +echo " + + + AU Management + + + + +
"; + +############################################## +# CN (DN) + +if ( $oldgroupcn == $groupcn ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldgroupcn != "" && $groupcn != "" && $oldgroupcn != $groupcn ){ + echo "Gruppenname aendern
"; + # hier noch Syntaxcheck + # Formulareingaben anpassen + $expgr = explode(" ",$groupcn); + foreach ($expgr as $word){$expuc[] = ucfirst($word);} + $groupcn = implode(" ",$expuc); + $groupcn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $groupcn); + + + $newgroupDN = "cn=".$groupcn.",cn=groups,".$auDN; + print_r($newgroupDN); echo "

"; + + modify_group_dn($groupDN, $newgroupDN); + + # newsubmenu holen... + $url = 'group.php?dn='.$newgroupDN.'&sbmnr='.$sbmnr; +} + +if ( $oldgroupcn != "" && $groupcn == "" ){ + echo "Gruppenname loeschen!
+ Dieses ist Teil des DN, Sie werden die Gruppe komplett löschen

"; + echo "Wollen Sie die Gruppe ".$oldgroupcn."mit seinen Hardware-Profilen (MachineConfigs) + und PXE Bootmenüs wirklich löschen?

+
+ Falls ja:

+ + +

+
+
+ Falls, nein:

+ +
"; + $seconds = 600; +} + + +######################################## +# Member löschen/aufnehmen + +if ( count($delmember) == 0 || count($addmember) == 0 ){ + # $mesg = "keine Aenderung
"; +} + +if ( count($delmember) != 0 ){ + echo "Gruppen-Mitglieder löschen
"; + # hier noch Syntaxcheck + # print_r($delmember); echo "

"; + + $i = 0; + foreach ($delmember as $member){ + $entry['member'][$i] = $member; + $i++; + } + #print_r($entry); echo "

"; + + if ($result = ldap_mod_del($ds,$groupDN,$entry)){ + # Fehler hier muessen die verbliebenen Members hin!!! + # Filenames in PXEs die an der Gruppe hängen anpassen + $pxes = get_pxeconfigs($groupDN,array("dn")); + foreach ($pxes as $pxe){ + if ( $entry['member'] > 1 ){ + $j = 0; + foreach ($entry['member'] as $host){ + $macdata = get_node_data($host, array("hwaddress")); + $entryfilename ['filename'][$j] = "01-".$macdata['hwaddress']; + $j++; + } + } + if ( $entry['member'] == 1 ){ + $macdata = get_node_data($entry['member'], array("hwaddress")); + $entryfilename ['filename'] = "01-".$macdata['hwaddress']; + } + ldap_mod_del($ds,$pxe['dn'],$entryfilename); + } + $mesg = "Gruppen-Mitglieder erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen der Gruppen-Mitglieder

"; + } +} + +if ( count($addmember) != 0 ){ + + echo "Gruppen-Mitglieder anlegen
"; + # hier noch Syntaxcheck + $members = get_node_data($groupDN,array("member")); + if ( count($members['member']) == 1 ){ + $member = $members['member']; + $members = array(); + $members['member'][] = $member; + } + if (count($members['member']) != 0){ + foreach ($members['member'] as $member){ + $entry2['member'][] = $member; + } + } + $i = 0; + foreach ($addmember as $member){ + $exp = explode('_',$member); + # Falls ein neues Mitglied keine MAC hat und an der Gruppe PXEs hängen + # dann wird diese nicht aufgenommen ... + $macdata = get_node_data($exp[0], array("hwaddress")); + $pxes = get_pxeconfigs($groupDN,array("dn","filename")); + if ( count($pxes) != 0 && $macdata['hwaddress'] == "" ){ + echo "Rechner ".$exp[1]." hat keine MAC Adresse eingetragen.
+ Fü die Gruppe sind PXE Bootmenüs definiert.
+ Da MACs für die PXE Datei notwendig ist wird der Rechner nicht aufgenommen!"; + } + else{ + $entry2['member'][] = $exp[0]; + } + $i++; + + } + + #print_r($entry2); echo "

"; + + if ($result = ldap_mod_replace($ds, $groupDN, $entry2)){ + + # PXEs die an der Gruppe hängen anpassen + $pxes = get_pxeconfigs($groupDN,array("dn")); + foreach ($pxes as $pxe){ + if ( $entry2['member'] > 1 ){ + $j = 0; + foreach ($entry2['member'] as $host){ + $macdata = get_node_data($host, array("hwaddress")); + $entryfilename ['filename'][$j] = "01-".$macdata['hwaddress']; + $j++; + } + } + if ( $entry2['member'] == 1 ){ + $macdata = get_node_data($entry2['member'], array("hwaddress")); + $entryfilename ['filename'] = "01-".$macdata['hwaddress']; + } + ldap_mod_replace($ds,$pxe['dn'],$entryfilename); + } + $mesg = "Gruppen-Mitglieder erfolgreich angelegt

"; + }else{ + $mesg = "Fehler beim anlegen der Gruppen-Mitglieder

"; + } +} + + +##################################### +# Description + +if ( $oldgroupdesc == $groupdesc ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldgroupdesc == "" && $groupdesc != "" ){ + echo "Gruppen-Beschreibung neu anlegen
"; + # hier noch Syntaxcheck + $entry['description'] = $groupdesc; + if($result = ldap_mod_add($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Gruppen-Beschreibung

"; + } +} + +if ( $oldgroupdesc != "" && $groupdesc != "" && $oldgroupdesc != $groupdesc ){ + echo "Gruppen-Beschreibung aendern
"; + # hier noch Syntaxcheck + $entry['description'] = $groupdesc; + if($result = ldap_mod_replace($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Gruppen-Beschreibung

"; + } +} + +if ( $oldgroupdesc != "" && $groupdesc == "" ){ + echo "Gruppen-Beschreibung loeschen
"; + # hier noch Syntaxcheck + $entry['description'] = $oldgroupdesc; + if($result = ldap_mod_del($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Gruppen-Beschreibung

"; + } +} + + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/group_delete.php b/ldap-site-mngmt/webinterface/computers/group_delete.php new file mode 100644 index 00000000..2a7e3d29 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/group_delete.php @@ -0,0 +1,47 @@ +"; +echo "groupdn:"; print_r($groupDN); echo "
"; +echo "groupcn:"; print_r($groupcn); echo "
"; +*/ + +$seconds = 1; +$url = 'groupoverview.php'; + +echo " + + + AU Management + + + + +
"; + +if ( $groupDN != ""){ + + if ( delete_group($groupDN) ){ + $mesg = "Rechnergruppe ".$groupcn." erfolgreich gelöscht!

"; + } + else{ + $mesg = "Fehler beim löschen der Rechnergruppe ".$groupcn." !

"; + } + +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/groupoverview.dwt b/ldap-site-mngmt/webinterface/computers/groupoverview.dwt new file mode 100644 index 00000000..d875c3be --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/groupoverview.dwt @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + +

Rechnergruppen  {AU} 

+ + + + + + + + + + + + + + + + + +
RechnergruppeAnzahl RechnerDHCP
{GROUPCN}  {MEMBERS}  {DHCPCONT}  
+ Zum Verwalten einer bestimmten Gruppe, wählen Sie links entsprechenden Submenü-Eintrag.
+ +
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/groupoverview.php b/ldap-site-mngmt/webinterface/computers/groupoverview.php new file mode 100644 index 00000000..b9f9ce05 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/groupoverview.php @@ -0,0 +1,64 @@ +assign(array("DN" => "", + "GROUPCN" => "Noch keine Rechnergruppen angelegt", + "GROUPDESC" => "", + "MEMBERS" => "", + "DHCPCONT" => "")); + +$attributes = array("dn","cn","member","description","dhcphlpcont"); +$group_array = get_groups($auDN,$attributes); + +$template->define_dynamic("Gruppen", "Webseite"); + +foreach ($group_array as $group){ + + $anzahlmember = count($group['member']); + + if ( count($group['dhcphlpcont']) != 0 ){ + $subnetCN = explode('cn=',$group['dhcphlpcont']); + $subnet = explode(',', $subnetCN[1]); + $dhcpcont = "Subnet $subnet[0]"; + }else{$dhcpcont = "";} + + $template->assign(array("DN" => $group['dn'], + "GROUPCN" => $group['cn'], + "GROUPDESC" => $group['description'], + "MEMBERS" => $anzahlmember, + # "MEMBER" => $group['member'], + "DHCPCONT" => $dhcpcont, + "AUDN" => $auDN )); + $template->parse("GRUPPEN_LIST", ".Gruppen"); +} + + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/host.dwt b/ldap-site-mngmt/webinterface/computers/host.dwt new file mode 100644 index 00000000..13d1da11 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/host.dwt @@ -0,0 +1,421 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Rechner   {HOSTNAME}

Allgemein

{DHCPLINK} DHCP/RBS

{HWLINK} Hardware

 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Eindeutiger Rechnername (hostname):
(Teil des dn, ohne Leerzeichen eingeben)  
+ +   +
Rechner Beschreibung:   + + +   +
MAC Adresse: + + + (Format hex:hex:hex:hex:hex:hex)  +
IP Adresse:   + + + (Format xx.xx.xx.xx)  +
+

Rechner  {HOSTNAME}  löschen:

+ + + + + + + + + + + + +
+ Der Rechner wird komplett gelöscht,
d.h. inklusive aller spezifisch für ihn angelegten + Hardware-Profile (MachineConfig) und PXE Bootmenüs. +
+ +

Wochen Übersicht Machine Configs Rechner  {HOSTNAME}  :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UhrzeitMontagDienstagMittwochDonnerstagFreitagSamstagSonntag
0       
        
2       
        
4       
        
6       
        
8       
        
10       
        
12       
        
14       
        
16        
        
18       
        
20       
        
22       
        

Legende:

+ + + + + + + + + + + + + + + + + + + + + +
Machine Config Farbe
Keine Konfiguration    
{MCDESC}     
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/host.php b/ldap-site-mngmt/webinterface/computers/host.php new file mode 100644 index 00000000..928df62c --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/host.php @@ -0,0 +1,95 @@ +assign(array("HOSTDN" => $hostDN, + "HOSTNAME" => $host['hostname'], + "DOMAINNAME" => $host['domainname'], + "HWADDRESS" => $host['hwaddress'], + "IPADDRESS" => $hostip[0], + "DESCRIPTION" => $host['description'], + "DHCPCONT" => $host['dhcphlpcont'], + "DHCPTYPE" => $dhcptype, + "MOUSE" => $host['hw-mouse'], + "GRAPHIC" => $host['hw-graphic'], + "MONITOR" => $host['hw-monitor'], + "DHCPLINK" => "
", + "HWLINK" => "", + "AUDN" => $auDN, + "SBMNR" => $sbmnr)); + + +########################################################## +# MC Wochenübersicht +$mc_array = get_machineconfigs($hostDN,array("dn","cn","timerange","description")); +# print_r($mc_array); +for ($i=0; $i 1 ){ + foreach ($mc_array[$i]['timerange'] as $tr){ + $exptime = array_merge(explode('_',$tr),$mc_array[$i]['description']); + $timeranges[$i][] = $exptime; # Für grafische Wo-Ansicht + } + }else{ + $exptime = array_merge(explode('_',$mc_array[$i]['timerange']), $mc_array[$i]['description']); + $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht + } +} +include("mc_wochenplan.php"); + +########################################################### +# PXE Wochenübersicht + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/host_add.php b/ldap-site-mngmt/webinterface/computers/host_add.php new file mode 100644 index 00000000..bde6f26a --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/host_add.php @@ -0,0 +1,101 @@ +"; +echo "hostname:"; print_r($hostname); echo "
"; +echo "hostdesc:"; print_r($hostdesc); echo "
"; +echo "mac:"; print_r($mac); echo "
"; +echo "ip:"; print_r($ip); echo "

"; +*/ + +$attribs = $_POST['attribs']; +if (count($attribs) != 0){ + foreach (array_keys($attribs) as $key){ + $atts[$key] = htmlentities($attribs[$key]); + } +} + +$seconds = 2; + +echo " + + + AU Management + + + + +
"; + +if ( $hostname != ""){ + + # Formulareingaben anpassen + $exphn = explode(" ",$hostname); + foreach ($exphn as $word){$expuc[] = ucfirst($word);} + $hostname = implode(" ",$expuc); + $hostname = preg_replace ( '/\s+([0-9A-Z])/', '$1', $hostname); + + # Host Objekt anlegen + $brothers = get_hosts($auDN,array("hostname")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['hostname'] == $hostname ){ + $mesg = "Es existiert bereits ein Rechner mit dem eingegebenen HOSTNAME!
+ Bitte geben Sie einen anderen HOSTNAME ein.

"; + $get_hostdesc = str_replace ( " ", "_", $hostdesc ); + $get_mac = str_replace ( " ", "_", $mac ); + $get_ip = str_replace ( " ", "_", $ip ); + $url = "new_host.php?hostname=Hier_anderen_HOSTNAME_eingeben&hostdesc=".$get_hostdesc."&mac=".$get_mac."&ip=".$ip; + $brother = 1; + break; + } + } + if ($brother == 0){ + $hostDN = "HostName=".$hostname.",cn=computers,".$auDN; + # print_r($hostDN); echo "
"; + + if (add_host($hostDN,$hostname,$hostdesc,$mac,$ip,$atts)){ + $mesg .= "
Neuer Rechner erfolgreich angelegt
"; + } + else{ + $mesg .= "
Fehler beim anlegen des Rechners!
"; + } + + $url = 'hostoverview.php'; + } +} + + +elseif ( $hostname == ""){ + + $get_hostdesc = str_replace ( " ", "_", $hostdesc ); + $get_mac = str_replace ( " ", "_", $mac ); + $get_ip = str_replace ( " ", "_", $ip ); + $mesg = "Sie haben den HOSTNAME des neuen Rechners nicht angegeben. Dieser ist aber ein notwendiges Attribut.
+ Bitte geben Sie ihn an.

"; + $url = "new_host.php?ou=Hier_HOSTNAME_eingeben&hostdesc=".$get_hostdesc."&mac=".$get_mac."&ip=".$ip; +} + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/host_change.php b/ldap-site-mngmt/webinterface/computers/host_change.php new file mode 100644 index 00000000..71c005fa --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/host_change.php @@ -0,0 +1,396 @@ +
"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +}*/ +#print_r($oldatts); echo "

"; + +/* +echo "new hostname:"; print_r($hostname); echo "
"; +echo "old hostname:"; print_r($oldhostname); echo "
"; +echo "new mac:"; print_r($mac); echo "
"; +echo "old mac:"; print_r($oldmac); echo "
"; +echo "new ip:"; print_r($ip); echo "
"; +echo "old ip:"; print_r($oldip); echo "
"; +echo "new desc:"; print_r($desc); echo "
"; +echo "old desc:"; print_r($olddesc); echo "

"; +echo "Host DN:"; print_r($hostDN); echo "
"; +echo "submenuNR:"; print_r($submenu); echo "

"; +*/ + +$seconds = 2; +$url = 'host.php?dn='.$hostDN.'&sbmnr='.$sbmnr; + +echo " + + + AU Management + + + + +
"; + +############################################## +# Hostname + +if ( $oldhostname == $hostname ){ + $mesg = "keine Aenderung
"; +} + +if ( $oldhostname != "" && $hostname != "" && $oldhostname != $hostname ){ + echo "Hostname aendern
"; + # hier noch Syntaxcheck + # Formulareingaben anpassen + $exphn = explode(" ",$hostname); + foreach ($exphn as $word){$expuc[] = ucfirst($word);} + $hostname = implode(" ",$expuc); + $hostname = preg_replace ( '/\s+([0-9A-Z])/', '$1', $hostname); + + $newhostDN = "hostname=".$hostname.",cn=computers,".$auDN; + # print_r($newhostDN); echo "

"; + modify_host_dn($hostDN, $newhostDN); + + # newsubmenu holen...hosts neu holen, sortieren, ->position + #$newhosts = get_hosts($auDN,array("dn")); + #print_r($newhosts); echo "

"; + #foreach ($newhosts as $item){ + # $newdnarray [] = $item['dn']; + #} + #$key = array_search($newhostDN, $newdnarray); + #print_r($key); echo "
"; + + $url = 'host.php?dn='.$newhostDN.'&sbmnr='.$sbmnr; + +} + +if ( $oldhostname != "" && $hostname == "" ){ + echo "Hostname loeschen!
+ Dies ist Teil des DN, Sie werden den Rechner komplett löschen

"; + echo "Wollen Sie den Rechner ".$oldhostname." mit seinen Hardware-Profilen (MachineConfigs) + und PXE Bootmenüs wirklich löschen?

+
+ Falls ja:

+ + +

+
+
+ Falls, nein:

+ +
"; + $seconds = 600; +} + + + +##################################### +# MAC + +if ( $oldmac == $mac ){ + #$mesg = "keine Aenderung
"; +} + +if ( $oldmac == "" && $mac != "" ){ + echo "MAC neu anlegen
"; + # hier noch Syntaxcheck + $entry['hwaddress'] = $mac; + $result = ldap_mod_add($ds,$hostDN,$entry); + if($result){ + $mesg = "MAC erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der MAC

"; + } +} + +if ( $oldmac != "" && $mac != "" && $oldmac != $mac ){ + echo "MAC aendern
"; + # hier noch Syntaxcheck + $entry['hwaddress'] = $mac; + $result = ldap_mod_replace($ds,$hostDN,$entry); + if($result){ + # in den PXEs auch ändern + $pxes = get_pxeconfigs($hostDN,array("dn","filename")); + if ( count($pxes) != 0 ){ + foreach ($pxes as $pxe){ + $entrynewmac ['filename'] = "01-".$mac; + ldap_mod_replace($ds,$pxe['dn'],$entrynewmac); + } + } + # und in Gruppen PXEs + $groups = get_groups_member($auDN,array("dn"),$hostDN); + if ( count($groups) != 0 ){ + $pxes = get_pxeconfigs($groups[0]['dn'],array("dn","filename")); + if ( count($pxes) != 0 ){ + foreach ($pxes as $pxe){ + if (count($pxe['filename']) > 1){ + for ($i=0; $i"; + # check ob PXEs am Rechnerobjekt hängen + $pxes = get_pxeconfigs($hostDN,array("dn","filename")); + $groups = get_groups_member($auDN,array("dn"),$hostDN); + if ( count($groups) != 0 ){ + $pxes2 = get_pxeconfigs($groups[0]['dn'],array("dn","filename")); + } + if ( count($pxes) != 0 || count($pxes2) != 0){ + echo "Für den Rechner sind PXE Bootmenüs angelegt welche die MAC Adresse als
+ Dateinamen verwenden. Sie köennen die MAC erst löschen, wenn Sie diese PXEs
+ entfernt haben.

+ MAC nicht gelöscht!"; + } + else{ + # hier noch Syntaxcheck + $entry['hwaddress'] = $oldmac; + $result = ldap_mod_del($ds,$hostDN,$entry); + if($result){ + $mesg = "MAC erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der MAC

"; + } + } +} + + +######################################## +# IP + +if ( $oldip == $ip ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldip == "" && $ip != "" ){ + echo "IP neu anlegen
"; + # hier noch Syntaxcheck + if( $syntax->check_ip_syntax($ip) ){ + $newip_array = array($ip,$ip); + $newip = implode('_',$newip_array); + # print_r($newip); echo "

"; + if (new_ip_host($newip,$hostDN,$auDN)){ + $mesg = "IP erfolgreich eingetragen

"; + if ($dhcptype == "subnet"){ + adjust_hostip_dhcpsubnet($ip,$hostDN,$dhcphlpcont); + } + }else{ + $mesg = "Fehler beim eintragen der IP

"; + } + } + else{echo "Falsche IP Syntax

";} +} + +if ( $oldip != "" && $ip != "" && $oldip != $ip ){ + echo "IP aendern
"; + # hier noch Syntaxcheck + if( $syntax->check_ip_syntax($ip) ){ + $newip_array = array($ip,$ip); + $newip = implode('_',$newip_array); + # print_r($newip); echo "

"; + $oldip_array = array($oldip,$oldip); + $oldipp = implode('_',$oldip_array); + if (modify_ip_host($newip,$hostDN,$auDN)){ + $mesg = "IP erfolgreich geaendert

"; + if ($dhcptype == "subnet"){ + adjust_hostip_dhcpsubnet($ip,$hostDN,$dhcphlpcont); + } + }else{ + $mesg = "Fehler beim aendern der IP

"; + # oldip die schon gelöscht wurde wieder einfügen + new_ip_host($oldipp,$hostDN,$auDN); + } + } + else{echo "Falsche IP Syntax

";} +} + +if ( $oldip != "" && $ip == "" ){ + echo "IP loeschen
"; + + if(delete_ip_host($hostDN,$auDN)){ + $mesg = "IP erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der IP

"; + } +} + + +##################################### +# Description + +if ( $olddesc == $desc ){ + # $mesg = "keine Aenderung
"; +} + +if ( $olddesc == "" && $desc != "" ){ + echo "Rechner-Beschreibung neu anlegen
"; + # hier noch Syntaxcheck + $entry['description'] = $desc; + $result = ldap_mod_add($ds,$hostDN,$entry); + if($result){ + $mesg = "Rechner-Beschreibung erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Rechner-Beschreibung

"; + } +} + +if ( $olddesc != "" && $desc != "" && $olddesc != $desc ){ + echo "Rechner-Beschreibung aendern
"; + # hier noch Syntaxcheck + $entry['description'] = $desc; + $result = ldap_mod_replace($ds,$hostDN,$entry); + if($result){ + $mesg = "Rechner-Beschreibung erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Rechner-Beschreibung

"; + } +} + +if ( $olddesc != "" && $desc == "" ){ + echo "Rechner-Beschreibung loeschen
"; + # hier noch Syntaxcheck + $entry['description'] = $olddesc; + $result = ldap_mod_del($ds,$hostDN,$entry); + if($result){ + $mesg = "Rechner-Beschreibung erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Rechner-Beschreibung

"; + } +} + +#################################### +# restliche Attribute +/* +$entryadd = array(); +$entrymod = array(); +$entrydel = array(); + +foreach (array_keys($atts) as $key){ + + if ( $oldatts[$key] == $atts[$key] ){ + #$mesg = "keine Aenderung
"; + } + 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 "
"; +#print_r($entrymod); echo "
"; +#print_r($entrydel); echo "
"; + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "
"; + #echo "neu anlegen
"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "".$key.","; + } + if(ldap_mod_add($ds,$hostDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "
"; + #echo "ändern
"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "".$key.","; + } + if(ldap_mod_replace($ds,$hostDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "
"; + #echo "löschen
"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "".$key.","; + } + if(ldap_mod_del($ds,$hostDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; + } +} + +*/ + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/host_delete.php b/ldap-site-mngmt/webinterface/computers/host_delete.php new file mode 100644 index 00000000..bcfa0add --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/host_delete.php @@ -0,0 +1,47 @@ +"; +echo "hostdn:"; print_r($hostDN); echo "
"; +echo "hostname:"; print_r($hostname); echo "
"; +*/ + +$seconds = 1; +$url = 'hostoverview.php'; + +echo " + + + AU Management + + + + +
"; + +if ( $hostDN != ""){ + + if ( delete_host($hostDN) ){ + $mesg = "Rechner ".$hostname." erfolgreich gelöscht!

"; + } + else{ + $mesg = "Fehler beim löschen von Rechner ".$hostname." !

"; + } + +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.dwt b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt new file mode 100644 index 00000000..87ed24a6 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.dwt @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + +

Rechner  {AU} 

+ + + + + + + + + + + + + + + + + + + +
RechnernameMAC AdresseIP AdresseDHCPRBS
{HOSTNAME}  {HWADDRESS}  {IPADDRESS}  {DHCPCONT}  {RBSCONT}  
+ Zum Verwalten eines bestimmten Rechners, wählen Sie links entsprechenden Submenü-Eintrag.
+ Um einen neuen Rechner anzulegen wählen Sie links "Neuer Rechner" +
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hostoverview.php b/ldap-site-mngmt/webinterface/computers/hostoverview.php new file mode 100644 index 00000000..c2bec0a2 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/hostoverview.php @@ -0,0 +1,82 @@ +assign(array("DN" => "", + "HOSTNAME" => "Noch keine Rechner angelegt", + "DOMAINNAME" => "", + "HWADDRESS" => "", + "IPADDRESS" => "", + "DHCPCONT" => "", + "RBSCONT" => "")); + +$attributes = array("dn","hostname","domainname","hwaddress","ipaddress","dhcphlpcont","hlprbservice"); +$host_array = get_hosts($auDN,$attributes); + +$template->define_dynamic("Rechner", "Webseite"); + +$i = 0; +foreach ($host_array as $host){ + + $hostname = "
".$host['hostname'].""; + $hostip = explode('_',$host['ipaddress']); + + $dhcpcont = ""; + if ( count($host['dhcphlpcont']) != 0 ){ + $dhcpexpdn = ldap_explode_dn($host['dhcphlpcont'],1); + $dhcpcn = $dhcpexpdn[0]; + $ocarray = get_node_data($host['dhcphlpcont'],array("objectclass","dhcphlpcont")); + $sub = array_search('dhcpSubnet', $ocarray['objectclass']); + if ($sub !== false ){ + $dhcpcont = "Subnet ".$dhcpexpdn[0]."
[".$dhcpexpdn[2]."]"; + }else{ + $dhcpcont = "Service ".$dhcpexpdn[0]."
[".$dhcpexpdn[2]."]"; + } + } + + $rbscont = ""; + if ( count($host['hlprbservice']) != 0 ){ + $rbsexpdn = ldap_explode_dn($host['hlprbservice'],1); + $rbscont = $rbsexpdn[0]."
[".$rbsexpdn[2]."]"; + } + + $template->assign(array("DN" => $host['dn'], + "HOSTNAME" => $hostname, + "DOMAINNAME" => $host['domainname'], + "HWADDRESS" => $host['hwaddress'], + "IPADDRESS" => $hostip[0], + "DHCPCONT" => $dhcpcont, + "RBSCONT" => $rbscont, + "AUDN" => $auDN )); + $template->parse("RECHNER_LIST", ".Rechner"); + + $i++; +} + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hwhost.dwt b/ldap-site-mngmt/webinterface/computers/hwhost.dwt new file mode 100644 index 00000000..472b2f3e --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/hwhost.dwt @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + +

Rechner   {HOSTNAME}

{HOSTLINK} Allgemein

{DHCPLINK} DHCP/RBS

Hardware

 
+ + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
HW Mouse:   + +   +
HW Graphic:   + +   +
HW Monitor:   + +   +
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hwhost.php b/ldap-site-mngmt/webinterface/computers/hwhost.php new file mode 100644 index 00000000..e401d5ce --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/hwhost.php @@ -0,0 +1,78 @@ +assign(array("HOSTDN" => $hostDN, + "HOSTNAME" => $host['hostname'], + "DOMAINNAME" => $host['domainname'], + "HWADDRESS" => $host['hwaddress'], + "IPADDRESS" => $hostip[0], + "DESCRIPTION" => $host['description'], + "DHCPCONT" => $host['dhcphlpcont'], + "MOUSE" => $host['hw-mouse'], + "GRAPHIC" => $host['hw-graphic'], + "MONITOR" => $host['hw-monitor'], + "DHCPLINK" => "", + "HOSTLINK" => "", + "AUDN" => $auDN, + "SBMNR" => $sbmnr)); + + +########################################################## +# MC Wochenübersicht +$mc_array = get_machineconfigs($hostDN,array("dn","cn","timerange","description")); +# print_r($mc_array); +for ($i=0; $i 1 ){ + foreach ($mc_array[$i]['timerange'] as $tr){ + $exptime = array_merge(explode('_',$tr),$mc_array[$i]['description']); + $timeranges[$i][] = $exptime; # Für grafische Wo-Ansicht + } + }else{ + $exptime = array_merge(explode('_',$mc_array[$i]['timerange']), $mc_array[$i]['description']); + $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht + } +} +include("mc_wochenplan.php"); + +########################################################### +# PXE Wochenübersicht + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/hwhost_change.php b/ldap-site-mngmt/webinterface/computers/hwhost_change.php new file mode 100644 index 00000000..7b93f7c9 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/hwhost_change.php @@ -0,0 +1,127 @@ +
"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +} +#print_r($oldatts); echo "

"; + +/* +echo "new hostname:"; print_r($hostname); echo "
"; +echo "old hostname:"; print_r($oldhostname); echo "
"; +echo "new mac:"; print_r($mac); echo "
"; +echo "old mac:"; print_r($oldmac); echo "
"; +echo "new ip:"; print_r($ip); echo "
"; +echo "old ip:"; print_r($oldip); echo "
"; +echo "new desc:"; print_r($desc); echo "
"; +echo "old desc:"; print_r($olddesc); echo "

"; +echo "Host DN:"; print_r($hostDN); echo "
"; +echo "submenuNR:"; print_r($submenu); echo "

"; +*/ + +$seconds = 2; +$url = 'host.php?dn='.$hostDN.'&sbmnr='.$sbmnr; + +echo " + + + AU Management + + + + +
"; + +#################################### +# restliche Attribute + +$entryadd = array(); +$entrymod = array(); +$entrydel = array(); + +foreach (array_keys($atts) as $key){ + + if ( $oldatts[$key] == $atts[$key] ){ + #$mesg = "keine Aenderung
"; + } + 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 "
"; +#print_r($entrymod); echo "
"; +#print_r($entrydel); echo "
"; + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "
"; + #echo "neu anlegen
"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "".$key.","; + } + if(ldap_mod_add($ds,$hostDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "
"; + #echo "ändern
"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "".$key.","; + } + if(ldap_mod_replace($ds,$hostDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "
"; + #echo "löschen
"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "".$key.","; + } + if(ldap_mod_del($ds,$hostDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; + } +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/machineconfig_default.dwt b/ldap-site-mngmt/webinterface/computers/machineconfig_default.dwt new file mode 100644 index 00000000..3596a0ce --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/machineconfig_default.dwt @@ -0,0 +1,323 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Default MachineConfigs (Konfigurationen)   {AU}

+ + + + + + + + + + + + + + + +
Machine ConfigGültigkeitsdauer (Time Range)
{MCDESC}  {TRANGES}  

Wochen Übersicht:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
UhrzeitMontagDienstagMittwochDonnerstagFreitagSamstagSonntag
0       
        
2       
        
4       
        
6       
        
8       
        
10       
        
12       
        
14       
        
16        
        
18       
        
20       
        
22       
        

Legende:

+ + + + + + + + + + + + + + + + + + + + + +
Machine Config Farbe
Keine Konfiguration    
{MCDESC}     
diff --git a/ldap-site-mngmt/webinterface/computers/machineconfig_default.php b/ldap-site-mngmt/webinterface/computers/machineconfig_default.php new file mode 100644 index 00000000..ac386a57 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/machineconfig_default.php @@ -0,0 +1,75 @@ +assign(array("MCDN" => "", + "MCCN" => "Noch keine Default MachineConfig angelegt", + "TRANGES" => "", + "MCDESC" => "Noch keine Default MachineConfig angelegt")); + + +$mc_array = get_machineconfigs("cn=computers,".$auDN,array("dn","cn","timerange","description")); +# print_r($mc_array); + + +$template->define_dynamic("Machineconf", "Webseite"); + +for ($i=0; $i 1 ){ + foreach ($mc_array[$i]['timerange'] as $tr){ + $exptime = array_merge(explode('_',$tr),$mc_array[$i]['description']); + $timeranges[$i][] = $exptime; # Für grafische Wo-Ansicht + if ($exptime[0] == "X"){$exptime[0]="täglich";} + # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";} + $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59 / "; + } + }else{ + $exptime = array_merge(explode('_',$mc_array[$i]['timerange']), $mc_array[$i]['description']); + $timeranges[$i] = $exptime; # Für grafische Wo-Ansicht + if ($exptime[0] == "X"){$exptime[0]="täglich";} + # if ($exptime[1] == "X" && $exptime[2] == "X"){$exptime[1] = ""; $exptime[2]= "";} + $trange .= $exptime[0].", von ".$exptime[1].":00 bis ".$exptime[2].":59"; + } + + $template->assign(array("MCDN" => $mc_array[$i]['dn'], + "MCCN" => $mc_array[$i]['cn'], + "TRANGES" => $trange, + "MCDESC" => $mc_array[$i]['description'], + "AUDN" => $auDN)); + $template->parse("MACHINECONF_LIST", ".Machineconf"); +} + +#get_entry_number($mc_array[3]['dn'],"machineconfig"); + +include("mc_wochenplan.php"); + + +################################################################################### + +include("computers_footer.inc.php"); + +?> diff --git a/ldap-site-mngmt/webinterface/computers/mc_wochenplan.php b/ldap-site-mngmt/webinterface/computers/mc_wochenplan.php new file mode 100644 index 00000000..3df7ab82 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mc_wochenplan.php @@ -0,0 +1,154 @@ +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 "
"; + +# 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 "
"; +#print_r($timex); echo "
"; +#print_r($dayx); echo "
"; +#print_r($allx); echo "
"; + +$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("MCDESC" => "")); +#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], + "MCDESC" => $item[0][3], + "COLOR" => $color)); + $template->parse("LEGENDE_LIST", ".Legende"); + } +} + + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/mcdef.dwt b/ldap-site-mngmt/webinterface/computers/mcdef.dwt new file mode 100644 index 00000000..15f48548 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef.dwt @@ -0,0 +1,293 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

MachineConfig   {MCCN}

Allgemein:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
  + MC_ +   +
Machine Config
Beschreibung:  
  + + +   +
Gültigkeitsdauer
(Time Range(s)):
 
  + Eines der folgenden:
+ + - Datum  (dd.mm, z.B. 21.03/01.11)
+ - Monatstag  (dd, z.B. 01 oder 25)
+ - Wochentag  (MO, DI, ... , SO)
+ - X für täglich + +
+ - Uhrzeit  (Format: hh, z.B. 07-19)
+ - X für rund um die Uhr + +
Zum Löschen einer Time Range
Häkchen setzen 
+ +   + +  
+ + +
+ + :00  -   + + :59 Uhr
+
Neue Time Range hinzufügen   + + + + + :00  -   + + :59 Uhr
+ +

Dienste:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Start X:   + +   ( yes | no ) +
Start SNMP:   + +   ( yes | no ) +
Start SSHD:   + +   ( yes | no ) +
Start XDMCP:   + +   ( yes | no ) +
Start RWHOD:   + +   ( yes | no ) +
Start PRINT DAEMON:   + +   ( yes | no ) +
TEX Enable:   + +   ( yes | no ) +
Start CRON:   + +   ( yes | no ) +
Crontab Entries:  + + +  
+ +
Language:   + + +   +
NETBIOS Workgroup:   + +   +
VMWARE:   + +   +
+

MachineConfig  {MCCN}  kopieren:

+ Beachten Sie, dass die Time Ranges der Machine Config nicht mit kopiert werden.
+ Sie müssen diese anschließend neu setzen.
+ Geben Sie bitte den eindeutigen Namen des neuen MachineConfig-Objektes an. +
+ + + + + + + + + + + + + + + + + + + +
Ziel Objekt:
+ (Mehrfachauswahl möglich) 
+ + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
+ MC_ +   +
+ +

Default MachineConfig  {MCCN}  löschen:

+ + + + + + + + + + + + + +
+ Die MachineConfig wird komplett gelöscht. +
+ +
diff --git a/ldap-site-mngmt/webinterface/computers/mcdef.php b/ldap-site-mngmt/webinterface/computers/mcdef.php new file mode 100644 index 00000000..18e7a0aa --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef.php @@ -0,0 +1,137 @@ +define_dynamic("TRanges", "Webseite"); +if (count($mc['timerange']) > 1){ + foreach($mc['timerange'] as $tr){ + $exptime = explode('_',$tr); + $template->assign(array("MCDAY" => $exptime[0], + "MCBEG" => $exptime[1], + "MCEND" => $exptime[2])); + $template->parse("TRANGES_LIST", ".TRanges"); + } +}else{ + $exptime = explode('_',$mc['timerange']); + $template->assign(array("MCDAY" => $exptime[0], + "MCBEG" => $exptime[1], + "MCEND" => $exptime[2])); + $template->parse("TRANGES_LIST", ".TRanges"); +} + +$expcn = explode('_',$mc['cn']); +$name = array_slice($expcn,1); +$mccn = implode('_',$name); + +$template->assign(array("MCDN" => $mcDN, + "MCCN" => $mccn, + "MCDESC" => $mc['description'], + "LANG" => $mc['language'], + "X" => $mc['start-x'], + "SNMP" => $mc['start-snmp'], + "SSHD" => $mc['start-sshd'], + "XDMCP" => $mc['start-xdmcp'], + "RWHOD" => $mc['start-rwhod'], + "CRON" => $mc['start-cron'], + "CRONTAB" => "", + "PRINTD" => $mc['start-printdaemon'], + "TEX" => $mc['tex-enable'], + "NETBIOS" => $mc['netbios-workgroup'], + "VMWARE" => $mc['vmware'], + "NODEDN" => $nodeDN, + "DEFDN" => "cn=computers,".$auDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "MCNR" => $mcnr)); + +$template->define_dynamic("Crontab", "Webseite"); +if ( count($mc['crontab-entries']) != 0 ){ + if ( count($mc['crontab-entries']) > 1 ){ + foreach ($mc['crontab-entries'] as $crontab){ + $template->assign(array("CRONTAB" => $crontab)); + $template->parse("CRONTAB_LIST", ".Crontab"); + } + } + if ( count($mc['crontab-entries']) == 1 ){ + $template->assign(array("CRONTAB" => $mc['crontab-entries'])); + $template->parse("CRONTAB_LIST", ".Crontab"); + } +} +$template->assign(array("CRONTAB" => "")); +$template->parse("CRONTAB_LIST", ".Crontab"); + +################################################ +# MC 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($mc['timerange']) != 0){ + $template->assign(array("DELTR" => "1")); +} +else{ + $template->assign(array("DELTR" => "0")); +} + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/mcdef_add.php b/ldap-site-mngmt/webinterface/computers/mcdef_add.php new file mode 100644 index 00000000..efb86e87 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef_add.php @@ -0,0 +1,160 @@ +"; +$n = array_keys($targets,'none'); +#print_r($n); echo "
"; +for ($i=0; $i"; + +$mcattribs = $_POST['mcattribs']; +if (count($mcattribs) != 0){ + foreach (array_keys($mcattribs) as $key){ + $mcatts[$key] = htmlentities($mcattribs[$key]); + } +} +# print_r($mcatts); echo "

"; + +$seconds = 2; +$get_mccn = str_replace ( " ", "_", $mccn ); +$get_mcdesc = str_replace ( " ", "_", $mcdesc ); +$get_mcday = str_replace ( " ", "_", $mcday ); +$get_mcbeg = str_replace ( " ", "_", $mcbeg ); +$get_mcend = str_replace ( " ", "_", $mcend ); +$url = "new_mcdef.php?mccn=".$get_mccn."&mcdesc=".$get_mcdesc."&mcday=".$get_mcday."&mcbeg=".$get_mcbeg."&mcend=".$get_mcend."&mnr=".$mnr."&sbmnr=".$sbmnr; + +echo " + + + Computers Management + + + + +
"; + +if ( $mccn != "" && $mccn != "Hier_MC_NAME_eintragen"){ + + $mccn = "MC_".$mccn; + # Formulareingaben anpassen + $expmc = explode(" ",$mccn); + foreach ($expmc as $word){$expuc[] = ucfirst($word);} + $mccn = implode(" ",$expuc); + $mccn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mccn); + + $mctimerange = ""; + + if (count($targets) != 0){ + foreach ($targets as $targetDN){ + + $exptargetdn = ldap_explode_dn($targetDN, 1); + $targetcn = $exptargetdn[0]; + $targettype = $exptargetdn[1]; + + # Check auf eindeutigen MC-Namen am Zielobjekt + $brothers = get_machineconfigs($targetDN,array("cn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['cn'] == $mccn ){ + $mesg = "Es existiert bereits ein PXE Boot Menü mit dem eingegebenen Namen!
+ Bitte geben Sie einen anderen Namen ein.

"; + $url = "new_mcdef.php?mccn=".$get_mccn."&mcday=".$get_mcday."&mcbeg=".$get_mcbeg."&mcend=".$get_mcend."&mnr=".$mnr."&sbmnr=".$sbmnr; + $brother = 1; + break; + } + } + if ($brother == 0){ + + if ( $mcday != "" && $mcbeg != "" && $mcend != "" && $mcbeg <= $mcend ){ + + # TimeRange Syntax checken + $syntax = new Syntaxcheck; + if ($syntax->check_timerange_syntax($mcday,$mcbeg,$mcend)){ + + # in Grossbuchstaben + if (preg_match("/([a-z]+)/",$mcday)){$mcday = strtoupper($mcday);} + if (preg_match("/([a-z]+)/",$mcbeg)){$mcbeg = strtoupper($mcbeg);} + if (preg_match("/([a-z]+)/",$mcend)){$mcend = strtoupper($mcend);} + + # führende Nullen weg + $mcbeg = preg_replace ( '/0([0-9])/', '$1', $mcbeg); + $mcend = preg_replace ( '/0([0-9])/', '$1', $mcend); + + # TimeRange auf Überschneidung mit vorhandenen checken + if(check_timerange($mcday,$mcbeg,$mcend,$targetDN,"")){ + $mctimerange = $mcday."_".$mcbeg."_".$mcend; + } + else{ + $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range + überschneidet!
+ Die neue MachineConfig wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + } + else{ + $mesg = "Falsche Syntax in der Time-Range-Eingabe! Die neue MachineConfig wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + } + else{ + $mesg = "Keine vollständige Time-Range-Eingabe! Die neue MachineConfig wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + + $mcDN = "cn=".$mccn.",".$targetDN; + print_r($mcDN); echo "
"; + + if (add_mc($mcDN,$mccn,$mctimerange,$mcdesc,$mcattribs)){ + $mesg .= "
Neue MachineConfig erfolgreich angelegt
"; + if ($targettype == "computers"){ + $url = "mcdef.php?dn=".$mcDN."&mnr=1"; + } + if ($targettype == "groups"){ + $url = "mcdef.php?dn=".$mcDN."&mnr=2"; + } + if ($targettype == $au_ou){ + $url = "machineconfig_default.php"; + } + } + else{ + $mesg .= "
Fehler beim anlegen der MachineConfig!
"; + } + } + } + } + else{ + $mesg .= "
Sie haben kein Ziel angegeben!
"; + } +} + +elseif ( $mccn == "" || $mccn == "Hier_MC_NAME_eintragen"){ + + $mesg = "Sie haben den Namen der neuen Machine Config nicht angegeben. Dieser ist aber ein notwendiges Attribut.
+ Bitte geben Sie ihn an.

"; + $url = "new_mcdef.php?mccn=Hier_MC_NAME_eintragen&mcdesc=".$get_mcdesc."&mcday=".$get_mcday."&mcbeg=".$get_mcbeg."&mcend=".$get_mcend."&mnr=".$mnr."&sbmnr=".$sbmnr; +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/mcdef_change.php b/ldap-site-mngmt/webinterface/computers/mcdef_change.php new file mode 100644 index 00000000..4aaa29fe --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef_change.php @@ -0,0 +1,402 @@ +
"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +} +#print_r($oldatts); echo "

"; + + +$seconds = 2; +$url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; + +############################################## +# MC CN (DN) + +if ( $oldmccn == $mccn ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldmccn != "" && $mccn != "" && $oldmccn != $mccn ){ + echo "Machine Config Name aendern
"; + # hier noch Syntaxcheck + # Formulareingaben anpassen + $expmc = explode(" ",$mccn); + foreach ($expmc as $word){$expuc[] = ucfirst($word);} + $mccn = implode(" ",$expuc); + $mccn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mccn); + + + $newmcDN = "cn=".$mccn.",".$nodeDN; + print_r($newmcDN); echo "

"; + + if(modify_mc_dn($mcDN, $newmcDN)){ + $mesg = "MC Name erfolgreich geändert

"; + $mcDN = $newmcDN; + }else{ + $mesg = "Fehler beim ändern des MC Name!

"; + } + + + # newsubmenu holen... + $url = "mcdef.php?dn=".$newmcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + +if ( $oldmccn != "" && $mccn == "" ){ + echo "Gruppenname loeschen!
+ Dieses ist Teil des DN, Sie werden die MachineConfig komplett löschen

"; + echo "Wollen Sie die MachineConfig ".$oldmccn." wirklich löschen?

+
+ Falls ja:

+ + +

+
+
+ Falls, nein:

+ +
"; + $seconds = 600; +} + + +########################################## +# bereits vorhandene TimeRange(s) bearbeiten + +$entrymodtr = array(); +$modtr = 0; +# TimeRanges zusammensetzen +# $t = 0; # Laufvariable für $entrymodtr, da nicht jede Timerange ok sein muss +for ($i=0; $icheck_timerange_syntax($mcday[$i],$mcbeg[$i],$mcend[$i])){ + + # in Grossbuchstaben + if (preg_match("/([a-z]+)/",$mcday[$i])){$mcday[$i] = strtoupper($mcday[$i]);} + if (preg_match("/([a-z]+)/",$mcbeg[$i])){$mcbeg[$i] = strtoupper($mcbeg[$i]);} + if (preg_match("/([a-z]+)/",$mcend[$i])){$mcend[$i] = strtoupper($mcend[$i]);} + + # führende Nullen weg + $mcbeg[$i] = preg_replace ( '/0([0-9])/', '$1', $mcbeg[$i]); + $mcend[$i] = preg_replace ( '/0([0-9])/', '$1', $mcend[$i]); + + # TimeRange auf Überschneidung mit vorhandenen checken außer mit eigener alter TR da diese + # ja geändert werden soll + if(check_timerange($mcday[$i],$mcbeg[$i],$mcend[$i],$nodeDN,$oldmctimerange)){ + + $mctimerange = $mcday[$i]."_".$mcbeg[$i]."_".$mcend[$i]; + $entrymodtr ['timerange'][$i] = $mctimerange; + $modtr = 1; + + } + else{ + $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range + überschneidet!
+ Bitte geben Sie eine andere Time Range ein.

"; + $entrymodtr ['timerange'][$i] = $oldmctimerange; + } + } + else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!
+ Bitte geben Sie die erneut Time Range ein.

"; + $entrymodtr ['timerange'][$i] = $oldmctimerange; + } + +} + + +elseif ( $mcday[$i] == "" || $mcbeg[$i] == "" || $mcend[$i] == "" || $mcbeg[$i] > $mcend[$i]){ + + $mesg = "Sie haben die Time Range Nr.".$i." nicht vollständig angegeben. Diese ist aber ein notwendiges Attribut.
+ Diese Time Range wird nicht bearbeitet.

"; + $entrymodtr ['timerange'][$i] = $oldmctimerange; +} + +else{$entrymodtr ['timerange'][$i] = $oldmctimerange;} +} # Ende for-Schleife für jede Timerange +# jetzt noch alle gesammelten Änderungen Durchführen ... +if ($modtr == 1){ + # erst ändern + echo "Ändern: "; print_r($entrymodtr); echo "
"; + if($result = ldap_mod_replace($ds,$mcDN,$entrymodtr)){ + $mesg = "TimeRanges erfolgreich geändert

"; + }else{ + $mesg = "Fehler beim ändern der TimeRanges!

"; + } +} + + +if ( count($deltr) != 0 && $modtr == 0 ){ + # Time Range löschen + $j = 0; + foreach ($deltr as $delrange){ + $entrydeltr ['timerange'][$j] = $delrange; + $j++; + } + # dann löschen + echo "Löschen: "; print_r($entrydeltr); echo "
"; + if($result = ldap_mod_del($ds,$mcDN,$entrydeltr)){ + $mesg = "TimeRanges erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen der TimeRanges!

"; + } +}elseif(count($deltr) != 0 && $modtr == 1){ + echo "Nur Ändern (gleichzeitig Löschen und Ändern geht nicht)"; +} + +##################################### +# TimeRange hinzufügen + +if ( $newmcday != "" && $newmcbeg != "" && $newmcend != "" && $newmcbeg <= $newmcend ){ + + # TimeRange Syntax checken + $syntax = new Syntaxcheck; + if ($syntax->check_timerange_syntax($newmcday,$newmcbeg,$newmcend)){ + + # in Grossbuchstaben + if (preg_match("/([a-z]+)/",$newmcday)){$newmcday = strtoupper($newmcday);} + if (preg_match("/([a-z]+)/",$newmcbeg)){$newmcbeg = strtoupper($newmcbeg);} + if (preg_match("/([a-z]+)/",$newmcend)){$newmcend = strtoupper($newmcend);} + + # führende Nullen weg + $newmcbeg = preg_replace ( '/0([0-9])/', '$1', $newmcbeg); + $newmcend = preg_replace ( '/0([0-9])/', '$1', $newmcend); + + # TimeRange auf Überschneidung mit vorhandenen checken + if(check_timerange($newmcday,$newmcbeg,$newmcend,$nodeDN,"")){ + + $newmctimerange = $newmcday."_".$newmcbeg."_".$newmcend; + $entrytr ['timerange'] = $newmctimerange; + if($result = ldap_mod_add($ds,$mcDN,$entrytr)){ + $mesg = "Zusätzliche TimeRange erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der zusätzlichen TimeRange!

"; + } + }else{ + $mesg = "Es existiert bereits eine MachineConfig, die sich mit der eingegebenen Time Range + überschneidet!
+ Bitte geben Sie eine andere Time Range ein.

"; + } + }else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!
+ Bitte geben Sie die erneut Time Range ein.

"; + } +} + +##################################### +# MC Description + +if ( $oldmcdesc == $mcdesc ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldmcdesc == "" && $mcdesc != "" ){ + echo "MC-Beschreibung neu anlegen
"; + # hier noch Syntaxcheck + $entrymc['description'] = $mcdesc; + if(ldap_mod_add($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der MC-Beschreibung

"; + } +} + +if ( $oldmcdesc != "" && $mcdesc != "" && $oldmcdesc != $mcdesc ){ + echo "MC-Beschreibung aendern
"; + # hier noch Syntaxcheck + $entrymc['description'] = $mcdesc; + if(ldap_mod_replace($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der MC-Beschreibung

"; + } +} + +if ( $oldmcdesc != "" && $mcdesc == "" ){ + echo "Rechner-Beschreibung loeschen
"; + # hier noch Syntaxcheck + $entrymc['description'] = $oldmcdesc; + if(ldap_mod_del($ds,$mcDN,$entrymc)){ + $mesg = "MC-Beschreibung erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der MC-Beschreibung

"; + } +} + +##################################### +# Crontab Entries + +if (count($crontab) != 0 && (count(array_diff_assoc($crontab,$oldcrontab)) != 0 || count(array_diff_assoc($oldcrontab,$crontab)) != 0) ){ + + $crontabentry = array(); + foreach ($crontab as $ct){ + if ($ct != ""){ + $crontabentry ['crontab-entries'][] = $ct; + } + } + $oldcrontabentry = array(); + foreach ($oldcrontab as $oldct){ + if ($oldct != ""){ + $oldcrontabentry ['crontab-entries'][] = $oldct; + } + } + + if (count($crontabentry) == 0){ + echo "Crontab Eintrag löschen
"; + ldap_mod_del($ds,$mcDN,$oldcrontabentry); + }else{ + echo "Crontab Eintrag ändern
"; + print_r($crontabentry); + ldap_mod_replace($ds,$mcDN,$crontabentry); + } +} + +##################################### +# Restliche Attribute + +$entryadd = array(); +$entrymod = array(); +$entrydel = array(); + +foreach (array_keys($atts) as $key){ + + if ( $oldatts[$key] == $atts[$key] ){ + + } + if ( $oldatts[$key] == "" && $atts[$key] != "" ){ + # hier noch Syntaxcheck + $entryadd[$key] = $atts[$key]; + } + if ( $oldatts[$key] != "" && $atts[$key] != "" && $oldatts[$key] != $atts[$key] ){ + # hier noch Syntaxcheck + $entrymod[$key] = $atts[$key]; + } + if ( $oldatts[$key] != "" && $atts[$key] == "" ){ + # hier noch Syntaxcheck + $entrydel[$key] = $oldatts[$key]; + } +} + +#print_r($entryadd); echo "
"; +#print_r($entrymod); echo "
"; +#print_r($entrydel); echo "
"; + + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "
"; + #echo "neu anlegen
"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "".$key.","; + } + if(ldap_mod_add($ds,$mcDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "
"; + #echo "ändern
"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "".$key.","; + } + if(ldap_mod_replace($ds,$mcDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "
"; + #echo "löschen
"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "".$key.","; + } + if(ldap_mod_del($ds,$mcDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; + } +} + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/mcdef_copy.php b/ldap-site-mngmt/webinterface/computers/mcdef_copy.php new file mode 100644 index 00000000..313b22fc --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef_copy.php @@ -0,0 +1,111 @@ +"; +$n = array_keys($copytargets,'none'); +#print_r($n); echo "
"; +for ($i=0; $i"; + + +$seconds = 2; +$url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; + +if ( $mccn != ""){ + + # Formulareingaben anpassen + $expmc = explode(" ",$mccn); + foreach ($expmc as $word){$expuc[] = ucfirst($word);} + $mccn = implode(" ",$expuc); + $mccn = preg_replace ( '/\s+([0-9A-Z])/', '$1', $mccn); + + + if (count($copytargets) != 0){ + foreach ($copytargets as $targetDN){ + + $brothers = get_machineconfigs($targetDN,array("cn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['cn'] == $mccn ){ + $mesg = "Es existiert bereits eine Machine Config mit dem eingegebenen Namen!
+ Bitte geben Sie einen anderen Namen ein.

"; + $url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + $brother = 1; + break; + } + } + if ($brother == 0){ + + print_r($targetDN); echo "
"; + $exptarget = explode(',',$targetDN); + $target = explode('=',$exptarget[0]); + + $newmcDN = "cn=".$mccn.",".$targetDN; + print_r($newmcDN); echo "
"; + + + if (dive_into_tree_cp($mcDN,$newmcDN)){ + if($deltr == 1){ + $entrydel ['timerange'] = array(); + # Timeranges im neuen Objekt löschen + if (ldap_mod_del($ds,$newmcDN,$entrydel)){ + $mesg .= "
MachineConfig erfolgreich nach ".$target[1]." kopiert
"; + } + else{ + ldap_delete($ds,$newmcDN); + $mesg .= "
Fehler beim kopieren der MachineConfig nach ".$target[1]."
"; + } + } + } + else{ + $mesg .= "
Fehler beim kopieren der MachineConfig nach ".$target[1]."
"; + } + } + } + } + else{ + $mesg .= "
Sie haben kein Ziel angegeben!
"; + } +} + +elseif ( $mccn == ""){ + + $mesg = "Sie haben den Namen der neuen Machine Config nicht angegeben. Dieser ist aber ein notwendiges Attribut.
+ Bitte geben Sie ihn an.

"; + $url = "mcdef.php?dn=".$mcDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/mcdef_delete.php b/ldap-site-mngmt/webinterface/computers/mcdef_delete.php new file mode 100644 index 00000000..e191f703 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/mcdef_delete.php @@ -0,0 +1,40 @@ + + + Computers Management + + + + +
"; + +if ( $mcDN != ""){ + + if ( dive_into_tree_del($mcDN,"") ){ + $mesg = "Machine Config ".$mccn." erfolgreich gelöscht!

"; + } + else{ + $mesg = "Fehler beim löschen der Machine Config ".$mccn." !

"; + } + +} + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menu.dwt b/ldap-site-mngmt/webinterface/computers/menu.dwt new file mode 100644 index 00000000..34e02572 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menu.dwt @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + {SUB} + + + + {SUBSUB} + + + + + + + + + + + + +
{ICON}   + {TEXT_M} 
diff --git a/ldap-site-mngmt/webinterface/computers/menuentry.dwt b/ldap-site-mngmt/webinterface/computers/menuentry.dwt new file mode 100644 index 00000000..2ad75b93 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuentry.dwt @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Zurück zu  {PXECN}

 

Boot Menü Eintrag   {MECN}

 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Eindeutiger Name (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
+ +   +
Label:   + +   +
Generisches Boot Image:

(Angeboten von)  
+

{GMECN}

Abteilung: {GMEOU} [Remote Boot Dienst: {GMERBS}] +
Menu Label:   + +   +
Menu Default:   + +   +
Menu Passwd:   + +   +
Menu Hide:   + +   +
Localboot:   + +   +

APPEND Parameter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Client Konfiguration via:   + + ( dhcp | file | ldap ) +
vga:   + +   +
splash:   + +   +
vci:   + +   +
no ldsc:   + +   +
elevator:   + +   +
apic:   + +   +
Union FS:   + +   +
cowloop:   + +   +
Debug Level:   + +   +
Menü Position:   + +   +
Submenü Verweis:   + +
+ Dieses Feld sollte nur bei Verweisen auf Submenüs den vollständigen Link zu diesen enthalten +
(d.h. <TFTP-Server-IP>::/<TFTP-PXE-Pfad>/<Timerange>/<PXE-Dateiname>).
+ Bei Textzeilen und Leerzeilen muss hier "self" stehen.
+ Bei normalen Menüeinträgen (inklusive Localboot) muss diese Feld leer sein. +   +
Kernel:   + +
+ Angabe hier nur sinnvoll bei Leer-, Textzeilen oder Submenüverweisen,
+ denn Eingabe wird, wenn der Menüeintrag auf ein generisches Boot Image verweist (siehe oben)
+ bei der PXE Datei Generierung überschrieben. +   +
+

Boot Menü Eintrag  {MECN}  löschen:

+ + + + + + + + + + + + + + + +
+ Das generische Boot Image wird komplett gelöscht. +
+ +
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menuentry.php b/ldap-site-mngmt/webinterface/computers/menuentry.php new file mode 100644 index 00000000..81e1dc63 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuentry.php @@ -0,0 +1,170 @@ +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, + "TIMERANGE" => $timerange, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "MCNR" => $mcnr)); + +#$template->define_dynamic("Submenulink", "Webseite"); +#if (count($me['submenulink']) != 0){ +# foreach ($me['submenulink'] as $sbml){ +# $template->assign(array("SUBMENULINK" => $sbml)); +# $template->parse("SUBMENULINK_LIST", ".Submenulink"); +# } +#} + +# 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 "
"; + +$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("computers_footer.inc.php"); + +?> diff --git a/ldap-site-mngmt/webinterface/computers/menuentry_add.php b/ldap-site-mngmt/webinterface/computers/menuentry_add.php new file mode 100644 index 00000000..dd10e7c2 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuentry_add.php @@ -0,0 +1,263 @@ +
"; + +# PXE Typ (computers/groups) für Submenulinks +$pxearray = ldap_explode_dn($pxeDN, 1); +$pxetype = $pxearray[2]; + +$seconds = 2; +$get_mecn = str_replace ( " ", "_", $mecn ); +$url = "pxe.php?dn=".$pxeDN."&mecn=".$get_mecn."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; +# 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 .= "
Neuen Menü Eintrag erfolgreich angelegt
"; + $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr;; + } + else{ + $mesg .= "
Fehler beim anlegen des Menü Eintrags!
"; + } + } + + elseif ( $mecn == "" || $mecn == "Hier_NAME_eintragen" || $gbmDN == "none" ){ + + $mesg = "Sie haben den Namen des neuen Menü Eintrags nicht angegeben oder kein + Generisches Boot Image ausgewählt. Beide sind aber ein notwendige Attribute.
+ Bitte geben Sie sie an.

"; + $url = "new_menuentry.php?mecn=Hier_NAME_eintragen&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + } +} + +# 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; $ccheck_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; $ccheck_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; $cback"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menuentry_change.php b/ldap-site-mngmt/webinterface/computers/menuentry_change.php new file mode 100644 index 00000000..bf461f1f --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuentry_change.php @@ -0,0 +1,208 @@ +
"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +} +#print_r($oldatts); echo "

"; + + + +$seconds = 2; +$get_mecn = str_replace ( " ", "_", $mecn ); +$url = "menuentry.php?dn=".$meDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; + +############################################## +# ME CN (DN) + +if ( $oldmecn == $mecn ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldmecn != "" && $mecn != "" && $oldmecn != $mecn ){ + echo "Menü Eintrag Name aendern
"; + # 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 "

"; + + if(modify_me_dn($meDN, $newmeDN)){ + $mesg = "Menü Eintrag Name erfolgreich geändert

"; + $meDN = $newmeDN; + }else{ + $mesg = "Fehler beim ändern des PMenü Eintrag Namen!

"; + } + + + # newsubmenu holen... + $url = "menuentry.php?dn=".$newmeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + +if ( $oldmecn != "" && $mecn == "" ){ + echo "Menü Eintrag Name loeschen!
+ Dieses ist Teil des DN, Sie werden den Menü Eintrag komplett löschen

"; + echo "Wollen Sie den Menü Eintrag ".$oldmecn." wirklich löschen?

+
+ Falls ja:

+ + +

+
+
+ Falls, nein:

+ +
"; + $seconds = 600; +} + + +################################### +# Menu Position + +if ( $menpos == $oldmenpos || $menpos == "" ){ + # keine Änderung +} + +if ( $menpos != "" && $oldmenpos != $menpos ){ + echo "Menü Position ändern

"; + # 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ü Position erfolgeich nach ".$menpos." geändert"; + }else{ + $mesg .= "Fehler beim ändern der Menü Position!"; + } + }else{ + $mesg .= "Fehler beim ändern der Menü 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 "
"; +#print_r($entrymod); echo "
"; +#print_r($entrydel); echo "
"; + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "
"; + #echo "neu anlegen
"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "".$key.","; + } + if(ldap_mod_add($ds,$meDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "
"; + #echo "ändern
"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "".$key.","; + } + if(ldap_mod_replace($ds,$meDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "
"; + #echo "löschen
"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "".$key.","; + } + if(ldap_mod_del($ds,$meDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; + } +} + +################################### +# Ende, noch Redirect + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menuentry_delete.php b/ldap-site-mngmt/webinterface/computers/menuentry_delete.php new file mode 100644 index 00000000..ba06eb55 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuentry_delete.php @@ -0,0 +1,41 @@ + + + Computers Management + + + + +
"; + +if ( $meDN != ""){ + + if ( dive_into_tree_del($meDN,"") ){ + cleanup_menupositions($pxeDN); + $mesg = "Bootmenü Eintrag ".$mecn." erfolgreich gelöscht!

"; + } + else{ + $mesg = "Fehler beim löschen des Bootmenü Eintrags ".$mecn." !

"; + } + +} + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menuposition_down.php b/ldap-site-mngmt/webinterface/computers/menuposition_down.php new file mode 100644 index 00000000..53e82a21 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuposition_down.php @@ -0,0 +1,42 @@ +"; + $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."&mcnr=".$mcnr."&#menu"; +$mesg = ""; +#$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+# Falls nicht, klicken Sie hier
back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/menuposition_up.php b/ldap-site-mngmt/webinterface/computers/menuposition_up.php new file mode 100644 index 00000000..4a314aca --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/menuposition_up.php @@ -0,0 +1,40 @@ +"; + $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."&mcnr=".$mcnr."&#menu"; +$mesg = ""; +#$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+# Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_group.dwt b/ldap-site-mngmt/webinterface/computers/new_group.dwt new file mode 100644 index 00000000..ea9accf0 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_group.dwt @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Neue Rechnergruppe anlegen:

Notwendige Attribute (müssen angegeben werden):

+ + + + + + + + + + + + + + +
AttributWert
Gruppen Name (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
+   +

Optionale Attribute:

+ + + + + + + + + + + + + + + + + + + +
AttributWert
Gruppen-Rechner:
(Mehrfachauswahl möglich)  
+ + + + + +
Gruppen Beschreibung:   + +

Gruppe als Group-Objekt in den DHCP Dienst aufnehmen (optional):

+ + + + + + + +
DHCP ObjektAuswahl
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_group.php b/ldap-site-mngmt/webinterface/computers/new_group.php new file mode 100644 index 00000000..0fcd8bcc --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_group.php @@ -0,0 +1,76 @@ +assign(array("GROUPCN" => $groupcn, + "GROUPDESC" => $groupdesc, + "AUDN" => $auDN)); + +# DHCP Stuff ... + + +############################################## +# neues Member anlegen ... +$hosts_array = get_hosts($auDN,array("dn","hostname")); +# print_r($users_array); echo "

"; +$groups = get_groups($auDN, array("member")); +# print_r($groups); +$template->assign(array("HOSTNAME" => "")); + +if (count($groups) != 0){ + foreach ($groups as $group){ + for ($i=0; $i < count($hosts_array); $i++){ + foreach ($group['member'] as $item){ # ist hier sicher dass member ein array ist auch bei 1 member? + if ($hosts_array[$i]['dn'] == $item){ + array_splice($hosts_array, $i, 1); + $i--; + } + } + } + } +} +# if (count($users_array) != 0){ + $template->define_dynamic("Hosts", "Webseite"); + foreach ($hosts_array as $item){ + $template->assign(array("HDN" => $item['dn'], + "HOSTNAME" => $item['hostname'], + "HOSTNUMBER" => 5)); + $template->parse("HOSTS_LIST", ".Hosts"); + } + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_host.dwt b/ldap-site-mngmt/webinterface/computers/new_host.dwt new file mode 100644 index 00000000..32366a42 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_host.dwt @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Neuen Rechner anlegen:

Notwendige Attribute (müssen angegeben werden):

+ + + + + + + + + + + + + + +
AttributWert
Rechner Name (hostname):
(Teil des dn, ohne Leerzeichen eingeben)  
+   +

Optionale Attribute:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Rechner Beschreibung:   + +
MAC Adresse (HWAddress) :   + + Bsp.: 00-12-03-aa-54-e6   +
IP Adresse:   + +
HW Mouse:   + +
HW Graphic:   + +
HW Monitor:   + +

Rechner als Host-Objekt in den DHCP Dienst aufnehmen (optional):

+ + + + + + + +
DHCP ObjektAuswahl
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_host.php b/ldap-site-mngmt/webinterface/computers/new_host.php new file mode 100644 index 00000000..9be7b46e --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_host.php @@ -0,0 +1,53 @@ +assign(array("HOSTNAME" => $hostname, + "HOSTDESC" => $hostdesc, + "MAC" => $mac, + "IP" => $ip, + "MOUSE" => "", + "GRAPHIC" => "", + "MONITOR" => "", + "AUDN" => $auDN)); + + +# DHCP Stuff + + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_mcdef.dwt b/ldap-site-mngmt/webinterface/computers/new_mcdef.dwt new file mode 100644 index 00000000..72ebf72d --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_mcdef.dwt @@ -0,0 +1,184 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Neue Default MachineConfig anlegen:

 

Allgemein:

+ + + + + + + + + + + + + + + + + + + + + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
+ MC_ +
Machine Config
Beschreibung:  
+ +   +
Ziel Objekt:
+ (Mehrfachauswahl möglich) 
+ +
Gültigkeitsdauer
(Time Range):
 
+ +  
+ Eines der folgenden:
+ + - Datum  (Format: dd.mm, z.B. 21.03/01.11)
+ - Monatstag  (Format: dd, z.B. 01 oder 25)
+ - Wochentag  (Format: MO, DI, ... , SO)
+ - X für täglich + +
+ + :00  -   + + :59 Uhr
+ - Uhrzeit  (Format: hh, z.B. 07-19)
+ - X für rund um die Uhr +

Dienste:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Start X:   + +   ( yes | no ) +
Start SNMP:   + +   ( yes | no ) +
Start SSHD:   + +   ( yes | no ) +
Start XDMCP:   + +   ( yes | no ) +
Start RWHOD:   + +   ( yes | no ) +
Start PRINT DAEMON:   + +   ( yes | no ) +
TEX Enable:   + +   ( yes | no ) +
Start CRON:   + +   ( yes | no ) +
CRONTAB Entries:   + +
Language:   + +   +
NETBIOS Workgroup:   + +
VMWARE:   + +
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_mcdef.php b/ldap-site-mngmt/webinterface/computers/new_mcdef.php new file mode 100644 index 00000000..eec7a3dd --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_mcdef.php @@ -0,0 +1,74 @@ +assign(array("MCCN" => $mccn, + "MCDAY" => $mcday, + "MCBEG" => $mcbeg, + "MCEND" => $mcend, + "MCDESC" => $mcdesc, + "NODEDN" => "cn=computers,".$auDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "MCNR" => $mcnr)); + +################################################# +# Ziel Objekt (nur Rechner und Gruppen, Default) + +$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("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt new file mode 100644 index 00000000..9ccaa5ff --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_menuentry.dwt @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Zurück zu  {PXECN}

 

Neuen Boot Menü Eintrag anlegen:

 

Notwendige Attribute:

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Eindeutiger Name (cn):
(Teil des dn, ohne Leerzeichen eingeben)  
+ +
Label:   + +
Generische Boot Images:
(Wählen Sie eines aus)  
+ +
Menü Position:
+ (Bitte ohne führende Null) 
+ +
 

Optionale Attribute:

+ + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Menu Label:
(Wird im Bootmenü statt Label angezeigt)  
+ +
Menu Passwd:   + +
Menu Hide:   + +
Localboot:   + +

APPEND Parameter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Client Konfiguration via:   + +
vga:   + +
splash:   + +
vci:   + +
no ldsc:   + +
elevator:   + +
apic:   + +
Union FS:   + +
cowloop:   + +
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_menuentry.php b/ldap-site-mngmt/webinterface/computers/new_menuentry.php new file mode 100644 index 00000000..155ed245 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_menuentry.php @@ -0,0 +1,150 @@ +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) +$rbsoffers = get_rbsoffers($auDN); +# eigene AU +if (count($rbsoffers) != 0){ + $rbservices = get_rbservices($auDN,array("dn")); + # wenn eigene RBS anbietet dann diese GBMs als erstes (oben in der Liste) + if (count($rbservices) != 0){ + foreach ($rbservices as $rbs){ + for ($i=0; $i < count($rbsoffers); $i++){ + if ($rbs['dn'] == $rbsoffers[$i]){ + array_splice($rbsoffers, $i, 1); + } + } + } + # momentan maximal ein RBS in der AU + $rbsaudn[] = $rbservices[0]['dn']; + $rbsoffsorted = array_merge($rbsaudn,$rbsoffers); + } + # sonst die GBMs des für diese PXE genutzen RBS + else{ + for ($i=0; $i < count($rbsoffers); $i++){ + if ($rbsDN == $rbsoffers[$i]){ + array_splice($rbsoffers, $i, 1); + } + } + $rbsaudn[] = $rbsDN; + $rbsoffsorted = array_merge($rbsaudn,$rbsoffers); + } +} +#print_r($rbsoffsorted);echo "

"; +# RBS Offers nun in der Reihenfolge erst eigene AU dann Rest ... +$attributes = array("dn","cn","label","kernel","initrd","nfsroot","nbdroot","ipappend"); +$template->assign(array("GBMDN" => "", + "GBMCN" => "Keine generischen Boot Images verfügbar", + "RBSCN" => "", + "RBSAU" => "")); +if (count($rbsoffsorted) != 0){ + $template->define_dynamic("Rbs", "Webseite"); + $template->define_dynamic("Gbms", "Webseite"); + + foreach ($rbsoffsorted as $rbsoff){ + $template->clear_parse("GBMS_LIST"); + #print_r($rbsoff);echo "

"; + $rbsdnexp = ldap_explode_dn($rbsoff,1); + $rbsoffcn = $rbsdnexp[0]; + $rbsoffau = $rbsdnexp[2]; + + $gbm_array = get_menuentries($rbsoff,$attributes); + if (count($gbm_array) != 0){ + + foreach ($gbm_array as $item){ + $template->assign(array("GBMDN" => $item['dn'], + "GBMCN" => $item['cn'])); + $template->parse("GBMS_LIST", ".Gbms"); + $template->clear_dynamic("Gbms"); + } + + } + $template->assign(array("RBSCN" => $rbsoffcn, + "RBSAU" => $rbsoffau)); + $template->parse("RBS_LIST", ".Rbs"); + $template->clear_dynamic("Rbs"); + + } +} + + + +################################################################################### + +include("computers_footer.inc.php"); + +?> diff --git a/ldap-site-mngmt/webinterface/computers/new_pxe.dwt b/ldap-site-mngmt/webinterface/computers/new_pxe.dwt new file mode 100644 index 00000000..2a50e977 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_pxe.dwt @@ -0,0 +1,175 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Neues PXE Boot Menü anlegen:

 

Allgemein:

+ + + + + + + + + + + + + + --> + + + + + + + + + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
+ PXE_ +
Ziel Objekt:
+ (Mehrfachauswahl möglich) 
+ +
Gültigkeitsdauer
(Time Range):
 
+ +  
+ Eines der folgenden:
+ + - Datum  (Format: dd.mm, z.B. 21.03/01.11)
+ - Monatstag  (Format: dd, z.B. 01 oder 25)
+ - Wochentag  (Format: MO, DI, ... , SO)
+ - X für täglich + +
+ + :00  -   + + :59 Uhr
+ - Uhrzeit  (Format: hh, z.B. 07-19)
+ - X für rund um die Uhr +

Globale PXE Parameter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Default:   + +   +
Menu Title:   + +   +
Menu Master Passwd:   + +   +
Timeout:   + +   +
No Escape:   + +   +
Prompt:   + +   +
Allow Options:   + +   +
On Error:   + +   +
ON Timeout:   + +   +
Client-Conf Dateiname
(File URI):  
+ +   +
+
\ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/new_pxe.php b/ldap-site-mngmt/webinterface/computers/new_pxe.php new file mode 100644 index 00000000..07890505 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/new_pxe.php @@ -0,0 +1,130 @@ +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", + "NODEDN" => "cn=rbs,".$auDN, + "HDN" => "none", + "HN" => "", + "GDN" => "none", + "GN" => "", + "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" => "   [ Abt.: ".$rbsoffau." ]")); + $template->parse("ALTRBS_LIST", ".Altrbs"); + } +} + +################################################# +# Ziel Objekt (nur Rechner und Gruppen, nicht Default) + +$hostorgroup = $exp[0]; +$hgexp = explode('=',$exp[0]); + +$hosts_array = get_hosts($auDN,array("dn","hostname","hlprbservice","hwaddress")); +if ( count($hosts_array) != 0 ){ + $template->define_dynamic("Hosts", "Webseite"); + foreach ($hosts_array as $item){ + # Nur Hosts die in DHCP/TFTP angemeldet und deren MAC eingetragen ist (für PXE-Filename) + if ( $item['hlprbservice'] != "" && $item['hwaddress'] != "" ){ + $template->assign(array("HDN" => $item['dn'], + "HN" => $item['hostname'])); + $template->parse("HOSTS_LIST", ".Hosts"); + } + } +} + +$groups_array = get_groups($auDN,array("dn","cn","hlprbservice")); +if ( count($groups_array) != 0 ){ + $template->define_dynamic("Groups", "Webseite"); + foreach ($groups_array as $item){ + if ( $item['hlprbservice'] != "" ){ + $template->assign(array("GDN" => $item['dn'], + "GN" => $item['cn'])); + $template->parse("GROUPS_LIST", ".Groups"); + } + } +} + +################################################################################### + +include("computers_footer.inc.php"); + +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/pxe.dwt b/ldap-site-mngmt/webinterface/computers/pxe.dwt new file mode 100644 index 00000000..0dff23eb --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe.dwt @@ -0,0 +1,476 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

PXE Boot Menü   {PXECN}

Klicken Sie auf einen Menüeintrag um zur Detailansicht zu gelangen und den Eintrag bearbeiten zu können
+ + + + + + + + + + + + + + + + + + + + + +
#FlagsMenu Label   
{POSITION} {MEDEF} {MEPWD} {MEHIDE} {ANZEIGE}  +
+
+ + + + + + + + +

Flags:

+
    +
  • D -> Default Menüeintrag
  • +
  • P -> Passwort geschützt
  • +
  • H -> Hidden
  • +
+

Neuen Menüeintrag anlegen:   

+   zur Eingabemaske  

Standard Menüeinträge anlegen:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Typ    Position 
Localboot   + Menu Label
 
+ Passwort (optional)
 
 
Textzeile    
Leerzeile    
Verweis zu Submenü  Submenü Name
+
Remote Boot Service + +  

Allgemeine Parameter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
  + PXE_ +   +
Remote Boot Dienst:    + {RBS} [Abteilung: {RBSAU}]
+ Von diesem Dienst verwendete Bootserver:
+ -  NFS Server  {NFS}{NFSROOT}
+ -  TFTP Server {TFTP}{TFTPROOT}
+ Alternativen Dienst verwenden:
+ +
Gültigkeitsdauer
(Time Range(s)):

+ Zum Löschen einer Time Range
Häkchen setzen 
  + Eines der folgenden:
+ + - Datum  (dd.mm, z.B. 21.03/01.11)
+ - Monatstag  (dd, z.B. 01 oder 25)
+ - Wochentag  (MO, DI, ... , SO)
+ - X für täglich + +
+ - Uhrzeit  (Format: hh, z.B. 07-19)
+ - X für rund um die Uhr + +
  + +   + +  
+ + +
+ + :00  -   + + :59 Uhr
+
Neue Time Range hinzufügen   + + + + + :00  -   + + :59 Uhr
+ +

Globale PXE Parameter:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
Default:   + +   +
Menu Title:   + +   +
Menu Master Passwd:   + +   +
Timeout:   + +   +
No Escape:   + +   +
Prompt:   + +   +
Allow Options:   + +   +
On Error:   + +   +
ON Timeout:   + +   +
File URI:   + tftp://{TFTP}/{TFTPFILE} + +   +

PXE Dateiname:

+ Achtung: Änderungen hier können zu nicht verwendeten PXE Dateien führen!
+ Sie sollten hier nur Änderungen vornehmen, wenn der PXE Datei offensichtlich ein falscher Name zugewiesen ist.
+ Wird z.B. vom betroffenen Rechner die MAC Adresse geändert, so wird dies vom System automatisch an dieser Stelle nachvollzogen. + Diese Feld dient daher primär der Kontrolle.
+ + + + + + + +
+ PXE Dateiname(n):
+ Bei PXE von Gruppen ist für jeden Mitgliedsrechner
+ der PXE Dateiname aufgelistet. +
+ + +   + + +
+ + + + + + + +

PXE Boot Menü  {PXECN}  kopieren:

+ Beachten Sie, dass die Time Ranges des PXE Boot Menüs nicht kopiert werden. Sie müssen diese anschließend + neu setzen.
+ Geben Sie bitte den eindeutigen Namen des neuen PXE Boot Menüs an.
+ + + + + + + + + + + + + + + + + + + +
Ziel Objekt:
+ (Mehrfachauswahl möglich) 
+ + +
Eindeutiger Name (cn):
(Bitte ohne Leerzeichen eingeben)  
+ PXE_ +   +
+ +

PXE Boot Menü  {PXECN}  löschen:

+ + + + + + + + + + + + + +
+ Die MachineConfig wird komplett gelöscht. +
+ +
diff --git a/ldap-site-mngmt/webinterface/computers/pxe.php b/ldap-site-mngmt/webinterface/computers/pxe.php new file mode 100644 index 00000000..bbc2e5e1 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe.php @@ -0,0 +1,252 @@ +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 "
"; +$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'], + #"LDAPURI" => $pxe['ldapuri'], + "FILEURI" => $pxe['fileuri'], + "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" => "cn=rbs,".$auDN, + "MNR" => $mnr, + "SBMNR" => $sbmnr, + "MCNR" => $mcnr)); + +# Alternative RB Dienste holen +$altrbs = get_rbsoffers($auDN); + +# $altrbs = get_rbservices($auDN,array("dn","cn")); +$subrbs = $altrbs; +if (count($altrbs) != 0){ + for ($i=0; $i < count($altrbs); $i++){ + if ($rbsDN == $altrbs[$i]){ + array_splice($altrbs, $i, 1); + } + } +} +$template->assign(array("ALTRBSDN" => "", + "ALTRBSCN" => "", + "ALTRBSAU" => "")); +if (count($altrbs) != 0){ +$template->define_dynamic("Altrbs", "Webseite"); + foreach ($altrbs as $item){ + $rbsdnexp = ldap_explode_dn($item,1); + $rbsoffcn = $rbsdnexp[0]; + $rbsoffau = $rbsdnexp[2]; + #$altrbsexp = explode(',',$item['dn']); + #$altrbsau = explode('=',$altrbsexp[2]); + $template->assign(array("ALTRBSDN" => $item, + "ALTRBSCN" => $rbsoffcn, + "ALTRBSAU" => "   [ Abt.: ".$rbsoffau." ]")); + $template->parse("ALTRBS_LIST", ".Altrbs"); + } +} + +# Für Submenü Einträge +$template->assign(array("SUBRBSDN" => "", + "SUBRBSCN" => "", + "SUBRBSAU" => "")); +if (count($subrbs) != 0){ +$template->define_dynamic("Subrbs", "Webseite"); + foreach ($subrbs as $item){ + $rbsdnexp = ldap_explode_dn($item,1); + $subrbscn = $rbsdnexp[0]; + $subrbsau = $rbsdnexp[2]; + #$subrbsexp = explode(',',$item['dn']); + #$subrbsau = explode('=',$subrbsexp[2]); + $template->assign(array("SUBRBSDN" => $item, + "SUBRBSCN" => $subrbscn, + "SUBRBSAU" => "[ ".$subrbsau." ]")); + $template->parse("SUBRBS_LIST", ".Subrbs"); + } +} + +################################################ +# Bootmenü Einträge + +$template->define_dynamic("Bootmenu", "Webseite"); +$template->assign(array("MENDN" => "", + "MENULABEL" => "", + "ANZEIGE" => "Noch kein Bootmenü Eintrag angelegt", + "MEDEF" => "", + "MEPWD" => "", + "MEHIDE" => "", + "BGCDEF" => "", + "POSITION" => "")); +foreach ($menuentries as $me){ + $anzeige = ""; + if ($me['label'] != "" && $me['menulabel'] == ""){$anzeige .= $me['label'];} + if ($me['menulabel'] != ""){$anzeige .= $me['menulabel'];} + if ($me['menudefault'] == 1){$medef = "D"; $bgcdef = "background-color:#EEDD82;";} + if ($me['menupasswd'] != ""){$mepwd = "P";} + if ($me['menuhide'] == 1){$mehide = "H"; $bgcdef = "background-color:#A0A0A0;";} + $template->assign(array("MENDN" => $me['dn'], + "ANZEIGE" => "".$anzeige."", + "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"); +} + +$dnexp = ldap_explode_dn($pxeDN, 1); +if ($dnexp[2] == "computers"){ + $nodetyp = "host"; +} +if ($dnexp[2] == "groups"){ + $nodetyp = "group"; +} +# falls TR vorhanden dann soll sie gelöscht werden (flag deltr setzen) +if (count($pxe['timerange']) != 0){ + $template->assign(array("DELTR" => "1", + "NODETYP" => $nodetyp)); +} +else{ + $template->assign(array("DELTR" => "0", + "NODETYP" => $nodetyp)); +} + +################################################################################### + +include("computers_footer.inc.php"); + +?> diff --git a/ldap-site-mngmt/webinterface/computers/pxe_add.php b/ldap-site-mngmt/webinterface/computers/pxe_add.php new file mode 100644 index 00000000..8aa54c31 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe_add.php @@ -0,0 +1,228 @@ +"; +$n = array_keys($targets,'none'); +#print_r($n); echo "
"; +for ($i=0; $i"; + +$pxeattribs = $_POST['pxeattribs']; +if (count($pxeattribs) != 0){ + foreach (array_keys($pxeattribs) as $key){ + $pxeatts[$key] = htmlentities($pxeattribs[$key]); + } +} +# print_r($mcatts); echo "

"; + +$seconds = 20; +$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 " + + + Computers Management + + + + +
"; + +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 = ""; + $nomac = 0; + + if (count($targets) != 0){ + foreach ($targets 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 + # jetzt schon vorher bei der Zielobjektauswahl abgefangen + if ($targettype == "computers"){ + $macdata = get_node_data($targetDN, array("hwaddress")); + if ($macdata['hwaddress'] == ""){ + $nomac = 1; + echo "Für den Ziel-Rechner ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü wird nicht angelegt.
+
+ Tragen Sie zuerst eine MAC ein!

"; + } + } + 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ür den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü für die Gruppe wird nicht angelegt.
+
+ Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein!

"; + } + } + } + if (count($members) == 1){ + $macdata = get_node_data($members['member'], array("hwaddress")); + if ($macdata['hwaddress'] == ""){ + $nomac = 1; + echo "Für den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü für die Gruppe wird nicht angelegt.
+
+ Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein!

"; + } + } + } + + # Check auf eindeutigen PXE-Namen (könnte man erweitern auf kompletten RBS) + $brothers = get_pxeconfigs($targetDN,array("cn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['cn'] == $pxecn ){ + $mesg = "Es existiert bereits ein PXE Boot Menü mit dem eingegebenen Namen!
+ Bitte geben Sie einen anderen Namen ein.

"; + $url = "new_pxe.php?pxecn=".$get_pxecn."&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr; + $brother = 1; + break; + } + } + if ($brother == 0 && $nomac == 0){ + + 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); + + print_r($nodeDN); + # TimeRange auf Überschneidung mit vorhandenen checken + if(check_timerange_pxe($pxeday,$pxebeg,$pxeend,$targetDN,"")){ + $pxetimerange = $pxeday."_".$pxebeg."_".$pxeend; + } + else{ + $mesg = "Es existiert bereits ein PXE Boot Menü, das sich mit der eingegebenen Time Range + überschneidet!
+ Das neue PXE Boot Menü wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + } + else{ + $mesg = "Falsche Syntax in der Time-Range-Eingabe! Das neue PXE Boot Menü wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + } + else{ + $mesg = "Keine vollständige Time-Range-Eingabe! Das neue PXE Boot Menü wird ohne Time Range angelegt.
+ Bitte geben Sie diese anschließend ein.

"; + } + + $pxeDN = "cn=".$pxecn.",".$targetDN; + + + # PXE Dateinamen bestimmen, MAC(s) + $filenames = array(); + if ($targettype == "computers"){ + $macdata = get_node_data($targetDN, array("hwaddress")); + $filenames[] = "01-".$macdata['hwaddress']; + } + 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")); + $filenames[] = "01-".$macdata['hwaddress']; + } + } + if (count($members) == 1){ + $macdata = get_node_data($members['member'], array("hwaddress")); + $filenames[] = "01-".$macdata['hwaddress']; + } + } + echo "filenames: ";print_r($filenames); echo "
"; + #$ldapuri = LDAP_HOST."/dn=cn=computers,".$auDN; + + # rbsDN bestimmen + $rbs = get_node_data($targetDN,array("hlprbservice")); + $rbsDN = $rbs['hlprbservice']; + print_r($rbsDN); + + /*if (add_pxe($pxeDN,$pxecn,$rbsDN,$pxetimerange,$pxeattribs,$filenames,$conffile)){ + $mesg .= "
Neues PXE Boot Menü erfolgreich angelegt
"; + if ($targettype == "computers"){ + $mnr=1; + } + if ($targettype == "groups"){ + $mnr=2; + } + $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr; + } + else{ + $mesg .= "
Fehler beim anlegen des PXE Boot Menüs!
"; + }*/ + } + } + } + else{ + $mesg .= "
Sie haben kein Ziel angegeben!
"; + } +} + + +elseif ( $pxecn == "" || $pxecn == "Hier_PXE_NAME_eintragen" || $rbsDN == "none" ){ + + $mesg = "Sie haben den Namen des neuen PXE Boot Menüs nicht angegeben oder den + Remote Boot Dienst nicht ausgewählt. Beide sind aber ein notwendige Attribute.
+ Bitte geben Sie sie an.

"; + $url = "new_pxe.php?pxecn=Hier_PXE_NAME_eintragen&pxeday=".$get_pxeday."&pxebeg=".$get_pxebeg."&pxeend=".$get_pxeend."&mnr=".$mnr."&sbmnr=".$sbmnr; +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/pxe_change.php b/ldap-site-mngmt/webinterface/computers/pxe_change.php new file mode 100644 index 00000000..b3fcd4fa --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe_change.php @@ -0,0 +1,437 @@ +
"; +$oldattribs = $_POST['oldattribs']; +if (count($oldattribs) != 0){ + foreach (array_keys($oldattribs) as $key){ + $oldatts[$key] = htmlentities($oldattribs[$key]); + } +} +#print_r($oldatts); echo "

"; + + +$seconds = 2; +$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; + +############################################## +# PXE CN (DN) + +if ( $oldpxecn == $pxecn ){ + # $mesg = "keine Aenderung
"; +} + +if ( $oldpxecn != "" && $pxecn != "" && $oldpxecn != $pxecn ){ + echo "PXE Name aendern
"; + # 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 "

"; + + if(modify_pxe_dn($pxeDN, $newpxeDN)){ + $mesg = "PXE Name erfolgreich geändert

"; + $pxeDN = $newpxeDN; + }else{ + $mesg = "Fehler beim ändern des PXE Namen!

"; + } + + + # newsubmenu holen... + $url = "pxe.php?dn=".$newpxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + +if ( $oldpxecn != "" && $pxecn == "" ){ + echo "PXE Name loeschen!
+ Dieses ist Teil des DN, Sie werden das PXE Boot Menü komplett löschen

"; + echo "Wollen Sie das PXE Boot Menü ".$oldpxecn." wirklich löschen?

+
+ Falls ja:

+ + +

+
+
+ Falls, nein:

+ +
"; + $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 ".$rbscn."[Abt.: ".$rbsau."] geändert

"; + }else{ + $mesg = "Fehler beim ändern des Remote Boot Services zu ".$rbscn."!

"; + } +} + + +########################################## +# 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; $icheck_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ü, das sich mit der eingegebenen Time Range + überschneidet!
+ Bitte geben Sie eine andere Time Range ein.

"; + $entrymodtr ['timerange'][$i] = $oldpxetimerange; + } + } + else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!
+ Bitte geben Sie die erneut Time Range ein.

"; + $entrymodtr ['timerange'][$i] = $oldpxetimerange; + } + +} + + +elseif ( $pxeday[$i] == "" || $pxebeg[$i] == "" || $pxeend[$i] == "" || $pxebeg[$i] > $pxeend[$i]){ + + $mesg = "Sie haben die Time Range Nr.".$i." nicht vollständig angegeben. Diese ist aber ein notwendiges Attribut.
+ Diese Time Range wird nicht bearbeitet.

"; + $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 "Ändern: "; print_r($entrymodtr); echo "
"; + if($result = ldap_mod_replace($ds,$pxeDN,$entrymodtr)){ + $mesg = "TimeRanges erfolgreich geändert

"; + }else{ + $mesg = "Fehler beim ändern der TimeRanges!

"; + } +} + + +if ( count($deltr) != 0 && $modtr == 0 ){ + # Time Range löschen + $j = 0; + foreach ($deltr as $delrange){ + $entrydeltr ['timerange'][$j] = $delrange; + $j++; + } + # dann löschen + echo "Löschen: "; print_r($entrydeltr); echo "
"; + if($result = ldap_mod_del($ds,$pxeDN,$entrydeltr)){ + $mesg = "TimeRanges erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen der TimeRanges!

"; + } +}elseif(count($deltr) != 0 && $modtr == 1){ + echo "Nur Ändern (gleichzeitig Löschen und Ä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ätzliche TimeRange erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der zusätzlichen TimeRange!

"; + } + }else{ + $mesg = "Es existiert bereits ein PXE Boot Menü, das sich mit der eingegebenen Time Range + überschneidet!
+ Bitte geben Sie eine andere Time Range ein.

"; + } + }else{ + $mesg = "Falsche Syntax in der Timerange-Eingabe!
+ Bitte geben Sie die erneut Time Range ein.

"; + } +} + + + +##################################### +# PXE Filename(s) + +$filemod = array(); +$modfi = 0; +$filedel = array(); +$delfi = 0; +$j = 0; + +if (count($file) != 0){ + +for ($i=0; $i + Vorsicht dies kann eine nicht verwendbare PXE Datei zur Folge haben!

"; + # hier noch Syntaxcheck + $filemod ['filename'][$i] = $file[$i]; + $modfi = 1; + } + + if ( $oldfile[$i] != "" && $file[$i] == "" ){ + echo "PXE Dateinamen loeschen!
+ Achtung: aus ihren PXE Daten wird keine PXE Datei mehr generiert.
+ Sie sind solange nicht mehr für den PXE Bootvorgang verwendbar bis Sie einen neuen Dateinamen anlegen!

"; + $filemod ['filename'][$i] = $oldfile[$i]; + $filedel ['filename'][$j] = $oldfile[$i]; + $j++; + $delfi = 1; + $seconds = 4; + } +} +#erst ändern +if ($modfi == 1){ + echo "Ändern: "; print_r($filemod); echo "
"; + if(ldap_mod_replace($ds,$pxeDN,$filemod)){ + $mesg = "PXE Dateiname(n) erfolgreich geändert

"; + }else{ + $mesg = "Fehler beim ändern des(r) PXE Dateinamens!

"; + } + $modfi = 0; +} +# dann löschen +if ($delfi == 1){ + echo "Löschen: "; print_r($filedel); echo "
"; + if(ldap_mod_del($ds,$pxeDN,$filedel)){ + $mesg = "PXE Dateiname(n) erfolgreich gelöscht

"; + }else{ + $mesg = "Fehler beim löschen des PXE Dateinamens !

"; + } + $delfi = 0; +} + +} + +# PXE Dateiname neu anlegen +if ($newfilename == ""){ +} +if ($newfilename != ""){ + echo "PXE Dateiname hinzufügen"; + $fileadd ['filename'] = $newfilename; + if(ldap_mod_add($ds,$pxeDN,$fileadd)){ + $mesg = "PXE Dateiname ".$newfilename." erfolgreich angelegt

"; + }else{ + $mesg = "Fehler beim anlegen des PXE Dateinamens ".$newfilename." !

"; + } +} + + + +################################################################## +# 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 "
"; +#print_r($entrymod); echo "
"; +#print_r($entrydel); echo "
"; + + +if (count($entryadd) != 0 ){ + #print_r($entryadd); echo "
"; + #echo "neu anlegen
"; + foreach (array_keys($entryadd) as $key){ + $addatts .= "".$key.","; + } + if(ldap_mod_add($ds,$pxeDN,$entryadd)){ + $mesg = "Attribute ".$addatts." erfolgreich eingetragen

"; + }else{ + $mesg = "Fehler beim eintragen der Attribute ".$addatts."

"; + } +} + +if (count($entrymod) != 0 ){ + #print_r($entrymod); echo "
"; + #echo "ändern
"; + foreach (array_keys($entrymod) as $key){ + $modatts .= "".$key.","; + } + if(ldap_mod_replace($ds,$pxeDN,$entrymod)){ + $mesg = "Attribute ".$modatts." erfolgreich geaendert

"; + }else{ + $mesg = "Fehler beim aendern der Attribute ".$modatts."

"; + } +} + +if (count($entrydel) != 0 ){ + #print_r($entrydel); echo "
"; + #echo "löschen
"; + foreach (array_keys($entrydel) as $key){ + $delatts .= "".$key.","; + } + if(ldap_mod_del($ds,$pxeDN,$entrydel)){ + $mesg = "Attribute ".$delatts." erfolgreich geloescht

"; + }else{ + $mesg = "Fehler beim loeschen der Attribute ".$delatts."

"; + } +} + + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/pxe_copy.php b/ldap-site-mngmt/webinterface/computers/pxe_copy.php new file mode 100644 index 00000000..eb75ea44 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe_copy.php @@ -0,0 +1,180 @@ +"; +$n = array_keys($copytargets,'none'); +#print_r($n); echo "
"; +for ($i=0; $i"; + + +$seconds = 2; +$url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; + +echo " + + + Computers Management + + + + +
"; + +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ür den Ziel-Rechner ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü wird nicht angelegt.
+
+ Tragen Sie zuerst eine MAC ein!

"; + } + } + 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ür den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü für die Gruppe wird nicht angelegt.
+
+ Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein!

"; + } + } + } + if (count($members) == 1){ + $macdata = get_node_data($members['member'], array("hwaddress")); + if ($macdata['hwaddress'] == ""){ + $nomac = 1; + echo "Für den Gruppen-Rechner ".$macdata['hostname']." ist keine MAC Adresse eingetragen
+ Das PXE Bootmenü für die Gruppe wird nicht angelegt.
+
+ Tragen Sie zuerst bei Rechner ".$macdata['hostname']." eine MAC ein!

"; + } + } + } + + $brothers = get_pxeconfigs($targetDN,array("cn")); + $brother = 0; + foreach ($brothers as $item){ + if( $item['cn'] == $pxecn ){ + $mesg = "Es existiert bereits ein PXE Boot Menü mit dem eingegebenen Namen!
+ Bitte geben Sie einen anderen Namen ein.

"; + $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]; + + $newpxeDN = "cn=".$pxecn.",".$targetDN; + print_r($newpxeDN); echo "
"; + + if (dive_into_tree_cp($pxeDN,$newpxeDN)){ + + # Filename anpassen + if ($targettype == "computers"){ + $macdata = get_node_data($targetDN, array("hwaddress")); + $entrymod ['filename'] = "01-".$macdata['hwaddress']; + #$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']; + #$entrymod ['fileuri'] = $target.".tgz"; + } + } + } + if(ldap_mod_replace($ds,$newpxeDN,$entrymod)){ + if($deltr == 1){ + # Timeranges und FileURI im neuen Objekt löschen (todo: anpassen statt löschen) + $entrydel ['timerange'] = array(); + $entrydel ['fileuri'] = array(); + if ( ldap_mod_del($ds,$newpxeDN,$entrydel) ){ + $mesg .= "
PXE Boot Menü erfolgreich nach ".$target[1]." kopiert
"; + } + else{ + ldap_delete($ds,$newpxeDN); + $mesg .= "
Fehler beim kopieren des PXE Boot Menüs nach ".$target[1]."
"; + } + } + } + else{ + ldap_delete($ds,$newpxeDN); + $mesg .= "
Fehler beim kopieren des PXE Boot Menüs nach ".$target[1]."
"; + } + } + else{ + $mesg .= "
Fehler beim kopieren des PXE Boot Menüs nach ".$target[1]."
"; + } + } + } + } + else{ + $mesg .= "
Sie haben kein Ziel angegeben!
"; + } +} + +elseif ( $pxecn == ""){ + + $mesg = "Sie haben den Namen des neuen PXE Boot Menüs nicht angegeben. Dieser ist aber ein notwendiges Attribut.
+ Bitte geben Sie ihn an.

"; + $url = "pxe.php?dn=".$pxeDN."&mnr=".$mnr."&sbmnr=".$sbmnr."&mcnr=".$mcnr; +} + + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file diff --git a/ldap-site-mngmt/webinterface/computers/pxe_delete.php b/ldap-site-mngmt/webinterface/computers/pxe_delete.php new file mode 100644 index 00000000..a1b7a060 --- /dev/null +++ b/ldap-site-mngmt/webinterface/computers/pxe_delete.php @@ -0,0 +1,42 @@ + + + Computers Management + + + + +
"; + +if ( $pxeDN != ""){ + + if ( dive_into_tree_del($pxeDN,"") ){ + $mesg = "PXE Boot Menü ".$pxecn." erfolgreich gelöscht!

"; + } + else{ + $mesg = "Fehler beim löschen des PXE Boot Menüs ".$pxecn." !

"; + } + +} + + +$mesg .= "
Sie werden automatisch auf die vorherige Seite zurückgeleitet.
+ Falls nicht, klicken Sie hier back"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "
+"; +?> \ No newline at end of file -- cgit v1.2.3-55-g7522