diff options
author | Tarik Gasmi | 2007-05-14 10:03:48 +0200 |
---|---|---|
committer | Tarik Gasmi | 2007-05-14 10:03:48 +0200 |
commit | 59cf91925ca8da43d2427331b23e4673b0e53095 (patch) | |
tree | 871f39414143192cb3e8bd6f4bd2b7462e7076b9 /ldap-site-mngmt/webinterface/computers/group_change.php | |
parent | Some webinterface data. (diff) | |
download | core-59cf91925ca8da43d2427331b23e4673b0e53095.tar.gz core-59cf91925ca8da43d2427331b23e4673b0e53095.tar.xz core-59cf91925ca8da43d2427331b23e4673b0e53095.zip |
Other webinterface data.
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1077 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'ldap-site-mngmt/webinterface/computers/group_change.php')
-rw-r--r-- | ldap-site-mngmt/webinterface/computers/group_change.php | 252 |
1 files changed, 252 insertions, 0 deletions
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 @@ +<?php +include('../standard_header.inc.php'); + +$groupcn = $_POST['groupcn']; +$oldgroupcn = $_POST['oldgroupcn']; +$groupdesc = $_POST['groupdesc']; +$oldgroupdesc = $_POST['oldgroupdesc']; + +$delmember = $_POST['delmember']; + +$addmember = $_POST['addmember']; +$n = array_search('none',$addmember); +if ($n === 0 ){array_splice($addmember, $n, 1);} + +$groupDN = $_POST['groupdn']; +$sbmnr = $_POST['sbmnr']; + +$syntax = new Syntaxcheck; + +$groupcn = htmlentities($groupcn); +$oldgroupcn = htmlentities($oldgroupcn); +$groupdesc = htmlentities($groupdesc); +$oldgroupdesc = htmlentities($oldgroupdesc); + +/* +echo "new groupcn:"; print_r($groupcn); echo "<br>"; +echo "old groupcn:"; print_r($oldgroupcn); echo "<br>"; +echo "new groupdesc:"; print_r($groupdesc); echo "<br>"; +echo "old groupdesc:"; print_r($oldgroupdesc); echo "<br><br>"; + +echo "members to delete:"; print_r($delmember); echo "<br><br>"; +echo "members to add:"; print_r($addmember); echo "<br><br>"; + +echo "Group DN:"; print_r($groupDN); echo "<br>"; +echo "submenuNR:"; print_r($submenu); echo "<br><br>"; +*/ + +$seconds = 2; +$url = 'group.php?dn='.$groupDN.'&sbmnr='.$sbmnr; + +echo " +<html> +<head> + <title>AU Management</title> + <link rel='stylesheet' href='../styles.css' type='text/css'> +</head> +<body> +<table border='0' cellpadding='30' cellspacing='0'> +<tr><td>"; + +############################################## +# CN (DN) + +if ( $oldgroupcn == $groupcn ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( $oldgroupcn != "" && $groupcn != "" && $oldgroupcn != $groupcn ){ + echo "Gruppenname aendern<br>"; + # 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 "<br><br>"; + + modify_group_dn($groupDN, $newgroupDN); + + # newsubmenu holen... + $url = 'group.php?dn='.$newgroupDN.'&sbmnr='.$sbmnr; +} + +if ( $oldgroupcn != "" && $groupcn == "" ){ + echo "Gruppenname loeschen!<br> + Dieses ist Teil des DN, Sie werden die Gruppe komplett löschen<br><br>"; + echo "Wollen Sie die Gruppe <b>".$oldgroupcn."</b>mit seinen Hardware-Profilen (MachineConfigs) + und PXE Bootmenüs wirklich löschen?<br><br> + <form action='group_delete.php' method='post'> + Falls ja:<br><br> + <input type='hidden' name='dn' value='".$groupDN."'> + <input type='hidden' name='name' value='".$oldgroupcn."'> + <input type='Submit' name='apply' value='löschen' class='small_loginform_button'><br><br> + </form> + <form action='".$url."' method='post'> + Falls, nein:<br><br> + <input type='Submit' name='apply' value='zurück' class='small_loginform_button'> + </form>"; + $seconds = 600; +} + + +######################################## +# Member löschen/aufnehmen + +if ( count($delmember) == 0 || count($addmember) == 0 ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( count($delmember) != 0 ){ + echo "Gruppen-Mitglieder löschen<br>"; + # hier noch Syntaxcheck + # print_r($delmember); echo "<br><br>"; + + $i = 0; + foreach ($delmember as $member){ + $entry['member'][$i] = $member; + $i++; + } + #print_r($entry); echo "<br><br>"; + + 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<br><br>"; + }else{ + $mesg = "Fehler beim löschen der Gruppen-Mitglieder<br><br>"; + } +} + +if ( count($addmember) != 0 ){ + + echo "Gruppen-Mitglieder anlegen<br>"; + # 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. <br> + Fü die Gruppe sind PXE Bootmenüs definiert. <br> + Da MACs für die PXE Datei notwendig ist wird der Rechner nicht aufgenommen!"; + } + else{ + $entry2['member'][] = $exp[0]; + } + $i++; + + } + + #print_r($entry2); echo "<br><br>"; + + 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<br><br>"; + }else{ + $mesg = "Fehler beim anlegen der Gruppen-Mitglieder<br><br>"; + } +} + + +##################################### +# Description + +if ( $oldgroupdesc == $groupdesc ){ + # $mesg = "keine Aenderung<br>"; +} + +if ( $oldgroupdesc == "" && $groupdesc != "" ){ + echo "Gruppen-Beschreibung neu anlegen<br>"; + # hier noch Syntaxcheck + $entry['description'] = $groupdesc; + if($result = ldap_mod_add($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich eingetragen<br><br>"; + }else{ + $mesg = "Fehler beim eintragen der Gruppen-Beschreibung<br><br>"; + } +} + +if ( $oldgroupdesc != "" && $groupdesc != "" && $oldgroupdesc != $groupdesc ){ + echo "Gruppen-Beschreibung aendern<br>"; + # hier noch Syntaxcheck + $entry['description'] = $groupdesc; + if($result = ldap_mod_replace($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich geaendert<br><br>"; + }else{ + $mesg = "Fehler beim aendern der Gruppen-Beschreibung<br><br>"; + } +} + +if ( $oldgroupdesc != "" && $groupdesc == "" ){ + echo "Gruppen-Beschreibung loeschen<br>"; + # hier noch Syntaxcheck + $entry['description'] = $oldgroupdesc; + if($result = ldap_mod_del($ds,$groupDN,$entry)){ + $mesg = "Gruppen-Beschreibung erfolgreich geloescht<br><br>"; + }else{ + $mesg = "Fehler beim loeschen der Gruppen-Beschreibung<br><br>"; + } +} + + + + + +$mesg .= "<br>Sie werden automatisch auf die vorherige Seite zurückgeleitet. <br> + Falls nicht, klicken Sie hier <a href=".$url." style='publink'>back</a>"; +redirect($seconds, $url, $mesg, $addSessionId = TRUE); + +echo "</td></tr></table></body> +</html>"; +?>
\ No newline at end of file |