[Sysadmins] ejabberd - группы из LDAP на основе OU

Dmitriy Kruglikov dmitriy.kruglikov на gmail.com
Сб Окт 3 12:13:34 UTC 2009


3 октября 2009 г. 12:29 пользователь Max Ivanov написал:

> Я не осилил назначение всех фильров в оригинальном
> mod_shared_roster_ldap
...
> да там
> меня уже не остановить было :)
Вот, помню, и генерал Брусилов так же оправдывался... ;)

>
> Давай  конечно.
Вот тебе, для начала vcard
+++
  {mod_vcard_ldap, [
        {ldap_vcard_map, [
                        {"NICKNAME", "%s", ["cn"]},
                        {"GIVEN", "%s", ["givenName"]},
                        {"MIDDLE", "%s", ["initials"]},
                        {"FAMILY", "%s", ["sn"]},
                        {"FN", "%s", ["displayName"]},
                        {"EMAIL", "%s", ["mail"]},
                        {"ORGNAME", "%s", ["o"]},
                        {"ORGUNIT", "%s", ["ou"]},
                        {"LOCALITY", "%s", ["l"]},
                        {"STREET", "%s", ["street"]},
                        {"REGION", "%s", ["st"]},
                        {"PCODE", "%s", ["postalCode"]},
                        {"TITLE", "%s", ["title"]},
                        {"URL", "%s", ["wWWHomePage"]},
                        {"DESC", "%s", ["description"]},
                        {"PHOTO", "%s", ["jpegPhoto"]},
                        {"ROLE", "%s", ["employeeType"]},
                        {"TEL", "%s", ["mobile"]}
                        ]},
        {ldap_search_fields, [
                        {"Пользователь", "%u"},
                        {"Псевдоним", "displayName"},
                        {"Имя", "givenName"},
                        {"Фамилия", "sn"},
                        {"E-Mail", "mail"},
                        {"Город", "l"}
                        ]},
        {ldap_search_reported, [
                        {"Псевдоним", "NICKNAME"},
                        {"Телефоны", "TEL"},
                        {"E-Mail", "EMAIL"}
                        ]}
  ]},
+++
А вот тебе ростер...
+++
  {mod_shared_roster_ldap, [
        {ldap_base, "ou=People,dc=breg,dc=com,dc=ua"},
        {ldap_groupattr, "l"},
        {ldap_groupdesc, "City"},
        {ldap_filter, "(&(destinationIndicator=act)(jabberPublishedItem=1))"},
        {ldap_memberattr, "uid"},
        {ldap_userdesc, "displayName"}
    ]},
+++

Фильтры у меня своеобразные ...
jabberPublishedItem нет в типовых схемах ...
Это остатки от танцев вокруг jabberd2 ...
destinationIndicator использую, как умею ...
В моих настройках destinationIndicator=act используется еще
и в фильтрах адресной книги RoundCube ...

В результате, у меня ростер группируется по городам, на основании
значения атрибута "l". В ростер попадают только те пользователи,
которые хоть раз залогинились, и при условии, что у них
destinationIndicator=act.


> Мне непонятно как дефолтный может работать с OU, ведь
> оно ищет сначала группы, потом просто берет как список пользователей
> какой-нибудь аттрибут найденной группы.
Нет ... Он берет значение ou: Группа ...

...
> т.к. надо искать с другим base path равноым dn от найденной
> OU.
Не ... Атрибут у каждого пользователя прописан ...
Ни чего искать не нужно ...
На основании значения поместить в нужную ветку ростера ...

-- 
Как правильно задавать вопросы:
http://maddog.sitengine.ru/smart-question-ru.html

Помогает:
http://search.altlinux.org

Best regards,
 Dmitriy Kruglikov
 Dmitriy.Kruglikov_at_gmail_dot_com
 XMPP: Dmitriy.Kruglikov_at_gmail_dot_com


Подробная информация о списке рассылки Sysadmins