Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программное обеспечение > Postfix и LDAP запросы


Автор: localhost 30.8.2010, 16:26
Имеется конфигурация Postfix'a, которая транспортирует почту пользователям на основании данных из ActiveDirectory
В конфиге такой ldap-запрос:
Цитата

query_filter = (&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(|(mail=%s)(othermailbox=%s)))


И все работает чудненько. Но допиливание потребовало включить в данный запрос и объекты типа "contact", т.к. в каталоге есть удаленные пользователи, к-рые не должны иметь аккаунтов, но должны пользоваться почтой.
Так вот, если я добавляю в строку objectclass=contact, например, вот так:
Цитата

query_filter = (&(objectclass=user)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(objectclass=contact)(|(mail=%s)(othermailbox=%s)))


или вот так:

Цитата

query_filter = (&(|(objectclass=user)(objectclass=contact))(!(userAccountControl:1.2.840.113556.1.4.803:=2))(|(mail=%s)(othermailbox=%s)))


То нифига не получается. Может кто подскажет верный запрос?

Автор: bilbobagginz 31.8.2010, 22:35
я бы посмотрел чему равны свойства userAccountControl у тех чмуриков, которые не user, а contact.


Автор: localhost 1.9.2010, 13:21
bilbobagginz, у контактов нет ряда атрибутов, которые есть у объектов класса User, поэтому решение состояло в переопределении запроса следующим образом:
Цитата

(&(objectcategory=contact)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(|(mail=*)(othermailbox=*)))

Критерий отбора уже другой и туда попадают все объекты, имеющие контактные атрибуты. Дальше лишь фильтруем по нужным.

Автор: bilbobagginz 1.9.2010, 22:27
localhost, понял, и взял на заметку. ч.з. когда может понадобиться smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)