Example #1
0
function build_au_array($au, $parentau)
{
    global $ds, $ldaperror, $tree_array, $tree;
    if ($parentau == "") {
        $tree_array[$au]['mode'] = "exp";
    } else {
        $tree_array[$au]['mode'] = "coll";
    }
    # au data
    $au_data = get_au_data($au, array("ou", "associateddomain"));
    #print_r($au_data); echo "<br><br>";
    $tree_array[$au]['roles'] = get_au_roles($au);
    # Falls MainAdmin dann auch MainAdmin automatisch im gesamten Subtree
    if ($parentau && in_array("MainAdmin", $tree_array[$parentau]['roles'])) {
        if (!in_array("MainAdmin", $tree_array[$au]['roles'])) {
            $tree_array[$au]['roles'][] = "MainAdmin";
        }
    }
    if ($tree_array[$au]['roles']) {
        $roles = implode('_', $tree_array[$au]['roles']);
        $tree_array[$au]['zone'] = $au_data[0]['associateddomain'];
        if ($au_data[0]['associateddomain']) {
            $tree_array[$au]['text'] = "<a href='zwischen.php?audn={$au}' class='headerlink'><b>" . $au_data[0]['ou'] . "</b></a>\n\t\t\t\t\t\t\t\t\t\t\t\t&nbsp;&nbsp;&nbsp;[ " . $au_data[0]['associateddomain'] . " ]";
        } else {
            $tree_array[$au]['text'] = "<code class='inactive_au'>" . $au_data[0]['ou'] . "</code> &nbsp;(Nicht aktiviert - noch keine DNS Zone)";
        }
    } else {
        $tree_array[$au]['text'] = "<code class='noadmin_au'>" . $au_data[0]['ou'] . "</code>";
    }
    # childaus
    $childs = get_childau($au, array("dn", "ou"));
    if ($childs) {
        if ($tree_array[$au]['roles']) {
            $tree_array[$au]['mode'] = "exp";
        } else {
            $tree_array[$au]['mode'] = "coll";
        }
        foreach ($childs as $child) {
            $childau = $child['dn'];
            $tree_array[$au]['childs'][] = $childau;
            # rekursiver Aufruf
            build_au_array($childau, $au);
            # Tree Pfad zu AUs unten expanden
            if ($tree_array[$childau]['roles'] || $tree_array[$childau]['mode'] == "exp") {
                $tree_array[$au]['mode'] = "exp";
            }
        }
    }
}
$all_roles = $_SESSION['all_roles'];
#echo "all roles: "; print_r($all_roles); echo "<br>";
$rollen = $all_roles[$auDN][roles];
#echo "rollen: "; print_r($rollen); echo "<br>";
if (!$rollen) {
    redirect(0, $START_PATH . "start.php", "", $addSessionId = FALSE);
    exit;
}
if (!($ds = uniLdapConnect($uid, $userPassword))) {
    echo "<html>\n\t\t\t<head>\n\t\t\t\t<title>Zentrales Rechner / IP Management</title>\n\t\t\t\t<link rel='stylesheet' href='../styles.css' type='text/css'>\n\t\t\t</head>\n\t\t\t<body>\n\t\t\t<table border='0' cellpadding='30' cellspacing='0'> \n\t\t\t<tr valign='middle'><td align='center'>\n\t\t\t<h3>Es konnte keine Verbindung zum LDAP Server hergestellt werden!</h3>\n\t\t\t</td></tr></table></body>\n\t\t\t</html>\n\t\t\t";
    die;
}
if ($auDN != "") {
    # AU Daten holen
    $attributes = array("ou", "associateddomain", "maxipblock", "freeipblock", "cn", "description");
    $au_data = get_au_data($auDN, $attributes);
    $assocdom = $au_data[0]['associateddomain'];
    $au_ou = $au_data[0]['ou'];
    $au_cn = $au_data[0]['cn'];
    $au_desc = $au_data[0]['description'];
    $au_mipb = $au_data[0]['maxipblock'];
    #print_r($au_mipb);echo "<br>";
    natsort($au_mipb);
    #print_r($au_mipb);echo "<br>";
    $au_fipb = $au_data[0]['freeipblock'];
    # AU Domain Daten holen
    $domain_data = get_domain_data($auDN, array("dn"));
    $expAuDn = explode(",", $auDN);
    if ($expAuDn[1] == "ou=RIPM") {
        $domDN = "ou=DNS," . $suffix;
    } else {
include '../standard_header.inc.php';
# Filename of Template
$webseite = "child_au.dwt";
include 'au_header.inc.php';
###############################################################################
# Menus
$mnr = 2;
$sbmnr = -1;
#$sbmnr = $_GET['sbmnr'];
createMainMenu($rollen, $mainnr);
createAUMenu($rollen, $mnr, $auDN, $sbmnr);
###############################################################################
# MainPage Data
$childauDN = "ou=" . $_GET['cau'] . "," . $auDN;
#$childauDN = $_GET['dn'];
$childau = get_au_data($childauDN, array("dn", "cn", "ou", "associateddomain", "description", "maxipblock"));
#print_r($childau);
$domprefix = str_replace('.uni-freiburg.de', '', $childau[0]['associateddomain']);
#print_r($domprefix);
$childzone = $childau[0]['associateddomain'];
if (in_array("ZoneAdmin", $all_roles[$rootAU]['roles'])) {
    $zoneinc = "<input type='Text' name='childdomain' value='{$childzone}' size='35' class='medium_form_field'>\n\t\t\t\t\t<input type='hidden' name='oldchilddomain' value='{$childzone}'>";
} else {
    if ($childzone) {
        $zoneinc = $childzone;
    } else {
        $zoneinc = "Kein DNS Zone zugeordnet <br>(Sie sind dazu nicht berechtigt. Wenden Sie sich an den DNS Administrator ..)";
    }
}
$template->assign(array("CHILDOU" => $childau[0]['ou'], "CHILDCN" => $childau[0]['cn'], "CHILDDN" => $childauDN, "CHILDDOMAIN" => $domprefix, "CHILDZONE" => $childzone, "ZONEINC" => $zoneinc, "CHILDDESC" => $childau[0]['description'], "RANGE1" => "", "RANGE2" => "", "AUDN" => $auDN, "SBMNR" => $sbmnr));
if ($childzone) {