На сервере AD у нас есть атрибут directreports. Я хочу иметь возможность идти сверху вниз по цепочке. Генеральный директор, его непосредственные подчиненные — A, B, C. Поскольку прямые подчиненные — это D, E, F, а прямые подчиненные B — G, H, I. Затем прямые подчиненные D — это X, Y, Z и т. д. до самого низа.
Я смотрел на это как на вложенную группу, но это не так. Я потерял, как решить все это вместе. Я пытаюсь сделать это на PHP. Мой php-код прямо сейчас просто ищет пользователя и дает мне прямые отчеты.
<?php
function aduserlookup ($UserName)
{
include_once 'config.php';
$ldapconn = ldap_connect("ldap://<IP>:389") or die("Could not connect to the ldap server");
if ($ldapconn) {
$r = @ldap_bind($ldapconn, $ldapuser."@test.com", $ldappass);
$sr=ldap_search($ldapconn, "OU=Employees,OU=Users,DC=test,DC=com",
"cn = " . $UserName);
$info = ldap_get_entries($ldapconn, $sr);
ldap_close($ldapconn);
return $info;
} else {
echo "<h4>Unable to connect to LDAP server</h4>";
}
}
$user = aduserlookup('test');
$directreports = $user[0]['directreports'];
echo '<pre>';
var_dump($directreports);
echo '</pre>';
foreach ($directreports as $key => $value)
{
$directreports = substr($value, 0, strpos($value, ","));
$directreports = strstr($directreports, '=');
$directreports = str_replace('=', '', $directreports);
$directreports1 = aduserlookup('\'' . $directreports . '\'');
echo $directreports1 . "<br>";
}
?>






ЕСЛИ вы используете Microsoft Active Directory и если я понял, что вы ищете, Вы можете Запрос Все пользователи, которые подчиняются руководителю отдела или его подчиненным с помощью этого запроса
(manager:1.2.840.113556.1.4.1941:=CN=manager,OU=users,DC=willeke,DC=com)
DirectReports — это сгенерированный сервером список пользователей, которые напрямую подчиняются «менеджеру». Пользователи, перечисленные в качестве отчетов, — это те пользователи, у которых свойство менеджера свойств установлено для этого пользователя. Каждый элемент в списке является Связанный атрибут для объекта, представляющего пользователя.
«У меня нет списка пользователей под менеджером. Я хочу получить этот список». И это то, что выше покажет. Список пользователей, подчиняющихся менеджеру. (CN=manager,OU=users,DC=willeke,DC=com) Как показано в запросе
МОЙ БОГ. Это круто. Так что нет необходимости зацикливаться или что-то еще. Все это делается из запроса AD.
это подход снизу вверх. То, что я пытаюсь сделать, это сверху вниз. По сути, у меня нет списка пользователей под менеджером. Я хочу получить этот список. Узнайте, кто отчитывается перед ними, и да, я использую Microsoft AD.