[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP+AD Часть2
vladsn07
Продолжение.
http://phpforum.ru/index.php?showtopic=77445 

Имеется срипт подключения к Active Directory.
<?php
$ldapServer = '****';
$ldapUserToAuth = '***@***.local'; // Любая активная учётка в домене
$ldapUserPasswd = '***';
$ldapBase = 'dc=***, dc=local'; // Откуда начинать поиск (тут во всём домене)
$ldapFilter1 = '(&(objectclass=user)(objectcategory=Person)(employeeid=123456))';
$justthese1 = array('sn', 'employeeid','extensionattribute1'); // имена полей, которые необходимо вытащить
$ldapFilter2= '(&(objectCategory=computer)(name='extensionattribute1'))';
$justthese2 = array('name', 'description'); // имена полей, которые необходимо вытащить

// Connecting to LDAP
$ldapconn = ldap_connect($ldapServer)
or die("Could not connect to $ldapServer");
// Пара опций - параметры чего -то-там
ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldapconn, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldapconn, LDAP_PORT, 3268);
// Авторизация
$ldapbind = ldap_bind($ldapconn, $ldapUserToAuth, $ldapUserPasswd);

$sr1=ldap_search($ldapconn, $ldapBase, $ldapFilter1, $justthese1);
$sr2=ldap_search($ldapconn, $ldapBase, $ldapFilter2, $justthese2);
$info1 = ldap_get_entries($ldapconn, $sr1);
$info2 = ldap_get_entries($ldapconn, $sr2);

for ($i=0, $c1=$info1['count']; $i<$c1; $i++)
echo $info1[$i]['sn'][0] . ' ----> ' .$info1[$i]['employeeid'][0] . ' -----> ' .$info1[$i]['extensionattribute1'][0];
for ($i=0, $c2=$info2['count']; $j<$c2; $j++)
echo $info2[$j]['description'][0];
?>

Каким образом можно задать 2 фильтр по значению атрибута 'extensionattribute1'?
$ldapFilter2= '(&(objectCategory=computer)(name='extensionattribute1'))'; - таким образом не работает
Игорь_Vasinsky
Цитата
(&(objectCategory=computer)(name='extensionattribute1'))'


наверно как то так

(|(objectCategory=computer)(name='extensionattribute2')(name='extensionattribute1'))


в мануалах есть же описание синтаксиса

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vladsn07
Я наверное не так выразился
Нужно задать 2-ой фильтр, а не два фильтра. Т.е. по 1-му фильтру определяем в атрибутах пользователя значение extensionattribute1 (у меня это имя компьютера, куда залогинился пользователь), а уже по значению атрибута extensionattribute1 находим атрибут "описание компьютера" в атрибутах компьютера или любой другой атрибут
Игорь_Vasinsky
ничего не понял

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Игорь_Vasinsky
нужно применить несколько параметров для одного атрибута или несколько атрибутов со своими параметрами?

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vladsn07
Объясняю еще раз. Весь этот скрипт нужен для определения информации по пользователю.
По employeeid я получаю - ФИО, email, имя компьютера - куда залогинлося пользователь в последний раз (получаю скриптом автологона и записываю его скриптом же в атрибут extensionattribute1, можно в другой атрибут), по найденному значению этого атрибута (имя компьютера - куда залогинился в последний раз пользователь) - определяем в параметрах компьютера уже другие атрибуты
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.