70 lines
1.1 KiB
PHP
70 lines
1.1 KiB
PHP
<?php
|
|
/**
|
|
* Draw a portion of the LDAP tree.
|
|
*
|
|
* @package phpLDAPadmin
|
|
* @subpackage Tree
|
|
*/
|
|
|
|
/**
|
|
*/
|
|
|
|
$request = array();
|
|
$request['dn'] = get_request('dn','REQUEST');
|
|
$request['server_id'] = get_request('server_id','REQUEST');
|
|
$request['code'] = get_request('code','REQUEST');
|
|
$request['action'] = get_request('action','REQUEST');
|
|
$request['noheader'] = get_request('noheader','REQUEST',false,0);
|
|
|
|
$tree = Tree::getInstance($request['server_id']);
|
|
if (! $tree)
|
|
{
|
|
die();
|
|
}
|
|
|
|
$treesave = false;
|
|
|
|
if ($request['dn']) {
|
|
$dnentry = $tree->getEntry($request['dn']);
|
|
|
|
if (! $dnentry) {
|
|
$tree->addEntry($request['dn']);
|
|
$dnentry = $tree->getEntry($request['dn']);
|
|
$treesave = true;
|
|
}
|
|
|
|
switch ($request['action']) {
|
|
case 0:
|
|
$dnentry->close();
|
|
|
|
break;
|
|
|
|
case 2:
|
|
default:
|
|
if ($dnentry->isSizeLimited()) {
|
|
$tree->readChildren($request['dn'],true);
|
|
|
|
$treesave = true;
|
|
}
|
|
|
|
$dnentry->open();
|
|
}
|
|
}
|
|
|
|
if ($treesave)
|
|
{
|
|
set_cached_item($app['server']->getIndex(), 'tree', 'null', $tree);
|
|
}
|
|
|
|
if ($request['dn'])
|
|
{
|
|
echo $tree->draw_children($dnentry, $request['code']);
|
|
}
|
|
else
|
|
{
|
|
$tree->draw($request['noheader']);
|
|
}
|
|
|
|
die();
|
|
|