Страница 1 из 1
Exim + LDAP, Взять первое значение
Добавлено: 2009-05-29 16:29:19
panda_jj
Есть запись пользователя uid=user,dc=my-company,dc=net
У него есть два поля mail
mail:
user@my-company.net
mail:
user@company.net
Надо взять первое значение "
user@my-company.net"
При таком запросе
Код: Выделить всё
${lookup ldap{size="1" ldap://LDAP_SRV/uid=user,dc=my-company,dc=net?mail?sub?}}
возвращаются оба значения
user@my-company.net,
user@company.net
Re: Exim + LDAP, Взять первое значение
Добавлено: 2009-05-31 22:32:09
Alex Keda
кондишен целиком покажите.
=======
и прочтите правила оформления сообщений, вверху любой страницы форума.
Re: Exim + LDAP, Взять первое значение
Добавлено: 2009-06-01 9:53:41
panda_jj
Вобщем-то суть вопроса заключается в запросе с первого поста
Полный запрос выглядит так:
Код: Выделить всё
data = ${sg {${map {${sg{${lookup \
ldap{ldap://LDAP_SRV\
/ou=MailGroup,LDAP_DOMAIN\
?member\
?sub\
?(mail=${quote_ldap:$local_part@$domain})}}}{, }{:}}}\
{ \
${lookup ldap{size="1" ldap://LDAP_SRV/$item?mail?sub?}} \
}}}{:}{, }}
Использую для отправки сообщений на группу. И если у человека есть алиас, то сообщение приходит дважды, а это не годится =(
Re: Exim + LDAP, Взять первое значение
Добавлено: 2009-06-01 10:47:07
Alex Keda
сделайте
extract
по пробелу, с доставанием первого значения
Re: Exim + LDAP, Взять первое значение
Добавлено: 2009-06-01 12:21:50
panda_jj
Спасибо! Заработало как надо
Только разделитель не пробел, а запятая. Потомучто массив атрибутов возвращается как список
"
user@my-company.net,
user@company.net, <value>"
Код: Выделить всё
data = ${sg {${map {${sg{${lookup \
ldap{ldap://LDAP_SRV\
/ou=MailGroup,LDAP_DOMAIN\
?member\
?sub\
?(mail=${quote_ldap:$local_part@$domain})}}}{, }{:}}}\
{ \
${extract{1}{,}{${lookup ldap{size="1" ldap://LDAP_SRV/$item?mail?sub?}}}} \
}}}{:}{,}}