Roundcube + адресная книга LDAP

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:13:53

Код: Выделить всё

// ----------------------------------
// ADDRESSBOOK SETTINGS
// ----------------------------------

// This indicates which type of address book to use. Possible choises:
// 'sql' (default) and 'ldap'.
// If set to 'ldap' then it will look at using the first writable LDAP
// address book as the primary address book and it will not display the
// SQL address book in the 'Address Book' view.
$rcmail_config['address_book_type'] = 'ldap';

// In order to enable public ldap search, configure an array like the Verisign
// example further below. if you would like to test, simply uncomment the example.
//$rcmail_config['ldap_public'] = array();

$rcmail_config['ldap_public']['ISKER.KZ'] = array(
  'name'          => 'ISKER.KZ',
  'hosts'         => array('192.168.15.2'),
  'port'          => 389,
  'use_tls'         => false,
  'user_specific' => false,
  'base_dn'       => 'DC=ISKER,DC=KZ',
  'bind_dn'       => 'CN=administrator,DN=ISKER,DC=KZ',
  'bind_pass'     => '******',
  'writable'      => false,
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
  'required_fields'     => array("cn", "sn", "mail"),
  'LDAP_rdn'      => 'mail',
  'ldap_version'  => 3,
  'search_fields' => array('mail', 'cn'),
  'name_field'    => 'cn',
  'email_field'   => 'mail',
  'surname_field' => 'sn',
  'firstname_field' => 'givenName',
  'sort'          => 'cn',
  'scope'         => 'sub',
  'filter'        => '(mail=*)',
  'fuzzy_search'  => true
  //'sizelimit'     => '0',
  //'global_search' => true,
  //'timelimit'     => '0',
);


// An ordered array of the ids of the addressbooks that should be searched
// when populating address autocomplete fields server-side. ex: array('sql','Verisign');
$rcmail_config['autocomplete_addressbooks'] = array('ldap');

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение CrazyPilot » 2010-05-13 15:15:33

порт?

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:16:35

CrazyPilot писал(а):порт?
Менял похрен ему.
У меня на аутлуке через 389 пашет

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение CrazyPilot » 2010-05-13 15:20:41

gyash писал(а):'bind_dn' => 'CN=administrator,DN=ISKER,DC=KZ',
Ошибку видите? И еще - у вас юзвер прямо в корне домена валяется? Не в контейнере Users?

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:24:46

CrazyPilot писал(а):
gyash писал(а):'bind_dn' => 'CN=administrator,DN=ISKER,DC=KZ',
Ошибку видите? И еще - у вас юзвер прямо в корне домена валяется? Не в контейнере Users?

Дурак не заметил, поменял такаяже ерудна

'bind_dn' => 'CN=administrator,OU=Users,DN=isker,DC=kz',

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение CrazyPilot » 2010-05-13 15:25:39

gyash писал(а):'bind_dn' => 'CN=administrator,OU=Users,DN=isker,DC=kz',

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:28:55

Код: Выделить всё

[quote="CrazyPilot"][quote="gyash"]'bind_dn' => 'CN=administrator,OU=Users,[b]DN[/b]=isker,DC=kz',[/quote][/quote]
'base_dn' => 'DC=isker,DC=kz',
'bind_dn' => 'CN=administrator,OU=Users,DC=isker,DC=kz',

Блин не заметил поменял. Так же

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение CrazyPilot » 2010-05-13 15:33:44

ну теперь на всякий случай конфиг в студию и проветьте пасс, надеюсь он не кириллицей, и порт попробуйте 3268. 3268 это global catalog, если у вас DC не глобал каталог - то я хз как быть

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:40:35

Код: Выделить всё

<?php

/*
 +-----------------------------------------------------------------------+
 | Main configuration file                                               |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 +-----------------------------------------------------------------------+

*/

$rcmail_config = array();


$rcmail_config['debug_level'] = 8;

$rcmail_config['log_driver'] = 'file';

$rcmail_config['log_date_format'] = 'd-M-Y H:i:s O';

$rcmail_config['syslog_id'] = 'roundcube';

$rcmail_config['syslog_facility'] = LOG_USER;

$rcmail_config['smtp_log'] = true;

$rcmail_config['log_logins'] = false;

$rcmail_config['sql_debug'] = false;

$rcmail_config['imap_debug'] = false;

$rcmail_config['ldap_debug'] = false;

$rcmail_config['smtp_debug'] = false;


$rcmail_config['default_host'] = 'ssl://localhost:993';

$rcmail_config['default_port'] = 993;

$rcmail_config['imap_auth_type'] = null;

$rcmail_config['imap_root'] = null;
$rcmail_config['imap_delimiter'] = null;

$rcmail_config['imap_force_caps'] = false;


$rcmail_config['smtp_server'] = 'localhost';

$rcmail_config['smtp_port'] = 9025;

$rcmail_config['smtp_user'] = '%u';

$rcmail_config['smtp_pass'] = '%p';

$rcmail_config['smtp_auth_type'] = 'PLAIN';

$rcmail_config['smtp_helo_host'] = '';


$rcmail_config['enable_installer'] = true;

$rcmail_config['log_dir'] = 'logs/';

$rcmail_config['temp_dir'] = 'temp/';

$rcmail_config['enable_caching'] = false;

$rcmail_config['message_cache_lifetime'] = '10d';

$rcmail_config['force_https'] = false;

$rcmail_config['auto_create_user'] = true;

$rcmail_config['skin_include_php'] = false;

$rcmail_config['session_lifetime'] = 10;

$rcmail_config['ip_check'] = false;

$rcmail_config['double_auth'] = false;

$rcmail_config['des_key'] = 'rcmail-!24ByteDESkey*Str';

$rcmail_config['username_domain'] = '';

$rcmail_config['mail_domain'] = '';

$rcmail_config['password_charset'] = 'ISO-8859-1';

$rcmail_config['sendmail_delay'] = 0;

$rcmail_config['max_recipients'] = 0;

$rcmail_config['max_group_members'] = 0;

$rcmail_config['useragent'] = 'RoundCube Webmail/'.RCMAIL_VERSION;

$rcmail_config['product_name'] = 'ISKER Webmail';

$rcmail_config['include_host_config'] = false;

$rcmail_config['generic_message_footer'] = '';

$rcmail_config['http_received_header'] = false;

$rcmail_config['http_received_header_encrypt'] = false;

$rcmail_config['mail_header_delimiter'] = NULL;

$rcmail_config['session_domain'] = '';

$rcmail_config['dont_override'] = array();

$rcmail_config['identities_level'] = 0;

$rcmail_config['mime_magic'] = '/usr/share/misc/magic';

$rcmail_config['email_dns_check'] = false;


$rcmail_config['plugins'] = array();


$rcmail_config['message_sort_col'] = 'date';

$rcmail_config['message_sort_order'] = 'DESC';

$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment');

$rcmail_config['language'] = null;

$rcmail_config['date_short'] = 'D H:i';

$rcmail_config['date_long'] = 'd.m.Y H:i';

$rcmail_config['date_today'] = 'H:i';

$rcmail_config['drafts_mbox'] = 'Drafts';

$rcmail_config['junk_mbox'] = 'Junk';

$rcmail_config['sent_mbox'] = 'Sent';

$rcmail_config['trash_mbox'] = 'Trash';

$rcmail_config['default_imap_folders'] = array('INBOX', 'Drafts', 'Sent', 'Junk', 'Trash');

$rcmail_config['create_default_folders'] = true;

$rcmail_config['protect_default_folders'] = true;

$rcmail_config['quota_zero_as_unlimited'] = false;

$rcmail_config['mdn_requests'] = 0;

$rcmail_config['enable_spellcheck'] = true;

$rcmail_config['spellcheck_engine'] = 'googie';

$rcmail_config['spellcheck_uri'] = '';

$rcmail_config['spellcheck_languages'] = NULL;

$rcmail_config['max_pagesize'] = 200;

$rcmail_config['min_keep_alive'] = 60;


$rcmail_config['address_book_type'] = 'ldap';


$rcmail_config['ldap_public']['ISKER.KZ'] = array(
  'name'          => 'ISKER.KZ',
  'hosts'         => array('192.168.15.2'),
  'port'          => 3268,
  'use_tls'         => false,
  'user_specific' => false,
  'base_dn'       => 'DC=isker,DC=kz',
  'bind_dn'       => 'cn=administrator,OU=Users,DC=isker,DC=kz',
  'bind_pass'     => '********',
  'writable'      => false,
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
  'required_fields'     => array("cn", "sn", "mail"),
  'LDAP_rdn'      => 'mail',
  'ldap_version'  => 3,
  'search_fields' => array('mail', 'cn'),
  'name_field'    => 'cn',
  'email_field'   => 'mail',
  'surname_field' => 'sn',
  'firstname_field' => 'givenName',
  'sort'          => 'cn',
  'scope'         => 'sub',
  'filter'        => '(mail=*)',
  'fuzzy_search'  => true
  //'sizelimit'     => '0',
  //'global_search' => true,
  //'timelimit'     => '0',
);


$rcmail_config['autocomplete_addressbooks'] = array('ldap');

$rcmail_config['default_charset'] = 'UTF-8';



$rcmail_config['default_charset'] = 'ISO-8859-1';

$rcmail_config['skin'] = 'default';

$rcmail_config['pagesize'] = 40;

$rcmail_config['timezone'] = 'auto';

$rcmail_config['dst_active'] = (bool)date('I');

$rcmail_config['prefer_html'] = true;

$rcmail_config['show_images'] = 0;

$rcmail_config['htmleditor'] = true;

$rcmail_config['prettydate'] = true;

$rcmail_config['draft_autosave'] = 300;

$rcmail_config['preview_pane'] = true;

$rcmail_config['preview_pane_mark_read'] = 0;

$rcmail_config['focus_on_new_message'] = true;

$rcmail_config['logout_purge'] = false;

$rcmail_config['logout_expunge'] = false;

$rcmail_config['inline_images'] = true;

$rcmail_config['skin'] = 'default';

$rcmail_config['pagesize'] = 40;

$rcmail_config['timezone'] = 'auto';

$rcmail_config['dst_active'] = (bool)date('I');

$rcmail_config['prefer_html'] = true;

$rcmail_config['show_images'] = 0;

$rcmail_config['htmleditor'] = true;

$rcmail_config['prettydate'] = true;

$rcmail_config['draft_autosave'] = 300;

$rcmail_config['preview_pane'] = true;

$rcmail_config['preview_pane_mark_read'] = 0;

$rcmail_config['focus_on_new_message'] = true;

$rcmail_config['logout_purge'] = false;

$rcmail_config['logout_expunge'] = false;

$rcmail_config['inline_images'] = true;

$rcmail_config['mime_param_folding'] = 1;

$rcmail_config['skip_deleted'] = false;

$rcmail_config['read_when_deleted'] = true;

$rcmail_config['flag_for_deletion'] = false;

$rcmail_config['keep_alive'] = 60;

$rcmail_config['check_all_folders'] = false;

$rcmail_config['display_next'] = false;

$rcmail_config['autoexpand_threads'] = 0;

$rcmail_config['top_posting'] = false;

$rcmail_config['strip_existing_sig'] = true;

$rcmail_config['show_sig'] = 1;

$rcmail_config['sig_above'] = false;

$rcmail_config['force_7bit'] = false;

$rcmail_config['search_mods'] = null;  // Example: array('*' => array('subject'=>1, 'from'=>1), 'Sent' => array('subject'=>1, 'to'=>1));

$rcmail_config['delete_always'] = false;

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-13 15:46:32

Все заработало

Код: Выделить всё

$rcmail_config['ldap_public']['ISKER.KZ'] = array(
  'name'          => 'ISKER.KZ',
  'hosts'         => array('192.168.15.2'),
  'port'          => 3268,
  'use_tls'         => false,
  'user_specific' => false,
  'base_dn'       => 'DC=isker,DC=kz',
  'bind_dn'       => 'administrator@isker.kz',
  'bind_pass'     => '*******',
  'writable'      => false,
  'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
  'required_fields'     => array("cn", "sn", "mail"),
  'LDAP_rdn'      => 'mail',
  'ldap_version'  => 3,
  'search_fields' => array('mail', 'cn'),
  'name_field'    => 'cn',
  'email_field'   => 'mail',
  'surname_field' => 'sn',
  'firstname_field' => 'givenName',
  'sort'          => 'cn',
  'scope'         => 'sub',
  'filter'        => '(mail=*)',
  'fuzzy_search'  => true
  //'sizelimit'     => '0',
  //'global_search' => true,
  //'timelimit'     => '0',
);

Все таки в винде 2008 логин надо через собачку писать .
CrazyPilot большое тебе спасибо за помощь!

Name
рядовой
Сообщения: 47
Зарегистрирован: 2008-08-26 17:44:35

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение Name » 2010-05-13 17:15:52

Вместо

Код: Выделить всё

'bind_dn' => 'CN=administrator,OU=Users,DC=isker,DC=kz',
надо
'bind_dn' => 'CN=administrator,CN=Users,DC=isker,DC=kz',

Users это не OU, а контейнер.

ЗЫ Извиняюсь, что умничаю.

CrazyPilot
ст. сержант
Сообщения: 321
Зарегистрирован: 2008-08-14 9:17:58
Откуда: Санкт-Петербург
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение CrazyPilot » 2010-05-13 19:38:21

Точняг!

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-14 6:59:10

Код: Выделить всё

[quote="Name"]Вместо
[code]'bind_dn' => 'CN=administrator,OU=Users,DC=isker,DC=kz',
надо
'bind_dn' => 'CN=administrator,CN=Users,DC=isker,DC=kz',

Users это не OU, а контейнер.

ЗЫ Извиняюсь, что умничаю.[/quote]
[/code]

Сейчас проверю.

gyash
рядовой
Сообщения: 49
Зарегистрирован: 2010-01-19 7:36:53
Откуда: Казахстан Атырау

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение gyash » 2010-05-14 7:01:34

Вообщем у меня и так и так работает
1. CN=administrator,CN=Users,DC=isker,DC=kz
2. administrator@isker.kz

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение freeman_tnu » 2010-09-13 11:46:47

Кто-нибудь прикручивал к ркубу персональные адресные книги через OpenLDAP?
В дефолтном конфиге ркуба это опция user_specific в настройках лдап книги. Хотелось бы увидеть структуру рабочего LDAP каталога и соответственно конфиг ркуба при такой связке.

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение freeman_tnu » 2010-09-13 16:36:53

Сам себе же и отвечу:

Рабочая LDAP схема

Код: Выделить всё

    # LDIF Export for dc=mydomain,dc=kiev,dc=ua
    # Сервер: My LDAP Server (127.0.0.1)
    # Область поиска: sub
    # Фильтр поиска: (objectClass=*)
    # Всего записей: 9
    #
    # Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on September 13, 2010 1:19 pm
    # Version: 1.2.0.5

    version: 1

    # Корень
    # Запись 1: dc=mydomain,dc=kiev,dc=ua
    dn: dc=mydomain,dc=kiev,dc=ua
    dc: mydomain
    o: Example Company
    objectclass: top
    objectclass: dcObject
    objectclass: organization

    # Домен
    # Запись 2: dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua
    dn: dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua
    associateddomain: mydomain.kiev.ua
    dc: mydomain.kiev.ua
    objectclass: dNSDomain
    objectclass: domainRelatedObject
    objectclass: top

    # Учетка 
    # Запись 3: cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua
    dn: cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua
    cn: myuser
    givenname: myuser
    mail: myuser@mydomain.kiev.ua
    objectclass: inetOrgPerson
    objectclass: top
    sn: myuser
    uid: myuser
    userpassword: {MD5}2Ie/fsdd3CHLU6z+dcO5jGkAw==

    # Тестовая запись в адрессной книге
    # Запись 4: cn=Vasya Pupkin,cn=myuser,dc=mydomain.kiev.ua,dc=mydomain...
    dn: cn=Vasya Pupkin,cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua
    cn: Vasya Pupkin
    givenname: Vasya
    mail: vasina@pochta.com
    objectclass: inetOrgPerson
    objectclass: top
    sn: Pupkin
Конфиг ркуба

Код: Выделить всё

$rcmail_config['ldap_public']['mydomain.kiev.ua'] = array(
    'name'                 => 'LDAP_Personal',
    'hosts'                => array('127.0.0.1'),
    'port'                 => 389,
    'use_tls'              => false,
    'user_specific'        => true,

    'base_dn'              => 'cn=%u,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua',
    'bind_dn'              => 'cn=root,dc=mydomain,dc=kiev,dc=ua',
    'bind_pass'            => 'mypass,
    'writable'             => true,

    'LDAP_Object_Classes' => array("top", "inetOrgPerson"),
    'required_fields'     => array("cn", "sn", "mail"),
    'LDAP_rdn'      => 'mail',

    'ldap_version'  => 3,
    'search_fields' => array('givenName', 'cn', 'sn', 'mail'),
    'name_field'    => 'cn',
    'email_field'   => 'mail',
    'surname_field' => 'sn',
    'firstname_field' => 'givenName',
    'sort'          => 'cn',
    'scope'         => 'sub',
    'filter'        => 'givenName=*',
    'fuzzy_search'  => true);
Все отлично работает: Каждый пользователь ркуба имеет свою личную адрессную книгу в лдапе, но есть одно "НО". Все хорошо и пушисто, когда с книгой работаем только из ркуба (доступ к конфигу подключения к лдап только у меня), а если скажем подключать книгу в Thanderbird, Outlook, Evolution, etc... ?! Тогда придеться указывать логин и пароль юзера LDAP, который соответственно имеет доступ ко все адрессным книгам в домене. Поэтому не секьюрно как-то :( Как бы так сделать, чтобы был для каждой почтовой учетки свой юзер в лдапе и при этом каким-то образом настроить это добро в ркубе?

Аватара пользователя
freeman_tnu
мл. сержант
Сообщения: 104
Зарегистрирован: 2007-09-13 12:17:00
Откуда: Kiev
Контактная информация:

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение freeman_tnu » 2010-09-14 13:27:08

Мне уже как-то не по себе говорить сам с собою :)
Снова отвечаю себе же:
slapd.conf

Код: Выделить всё

access to attr=userPassword
  by self write
  by anonymous auth
  by dn.base="cn=root,dc=mydomain,dc=kiev,dc=ua" write
  by dn.base="cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua" read
  by * none

access to dn.subtree="cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua"
  by self write
  by dn.base="cn=myuser,dc=mydomain.kiev.ua,dc=mydomain,dc=kiev,dc=ua" write
  by * none
Таким образом myuser имеет доступ только на просмотр и редактирование своей личной книги. а дальше ни-ни :)

Аватара пользователя
cutter
проходил мимо
Сообщения: 1
Зарегистрирован: 2010-11-20 2:11:37

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение cutter » 2010-11-20 2:37:05

заранее прошу не пинать и не убивать ...
я отдаю себе отчёт в том, что пишу немного не в той теме, но всё же после поисков решения отпишусь тут.

Мне кубик необходим для прикручивания к разрабатываемой АСУ на PHP плюс для удобства общения сотрудников.
В моем случае варианты с LDAP намного усложняют процесс...
Мне вполне удобно то, что есть внутренняя SQL адресная книга.

Я придумал вот такое решение -
есть юзер который формирует адресную книгу (аля админ адресной книги)
все остальные юзеры могут только просмотреть эту книгу и попытаться что-либо сделать (тчетно)
этот вариант я устроил таким образом
в каталоге кубика "\config\main.inc.php"
добавляем такую глобалку

Код: Выделить всё

 
$GLOBALS["rcmail_config_contacts_donor"]= 4 ;
где 4 это ID моего "админа адресной книги"

в каталоге кубика "\program\include\rcube_contacts.php"
примерно на строке 60 находим

Код: Выделить всё

    function __construct($dbconn, $user)
    {
        $this->db = $dbconn;
        $this->user_id = $user;  
        $this->ready = $this->db && !$this->db->is_error();
    }
модифицируем

Код: Выделить всё

    function __construct($dbconn, $user)
    {
        $this->db = $dbconn;
        $this->readonly = ($GLOBALS["rcmail_config_contacts_donor"] != $user); // добавляем эту строку
        $this->user_id = $GLOBALS["rcmail_config_contacts_donor"];   // эту модифицируем  
        $this->ready = $this->db && !$this->db->is_error();
    }
после этих мизерных изменений я получил желаемое.
тем более основная система у меня крутится на php и труда в автоматическом режиме отредактировать SQL мне не составляет.
ЗЫ:
1. Версия кубика - roundcubemail-0.4.2
2. Решение нашел в течении 10 минут. Так что могу чего не предусмотреть. но результаты быстрой проверки меня полностью удовлетворили!
3. Пишу тут. т.к. хочу помочь тем кто ковырялся в поисках как и я, а эта тема постоянно в поиске выскакивает.
Это Вам не это заэтовалось!

IrviS
рядовой
Сообщения: 14
Зарегистрирован: 2008-02-13 18:19:02

Re: Roundcube + адресная книга LDAP

Непрочитанное сообщение IrviS » 2011-05-21 22:01:07

Lehan писал(а):
Но для некоторых контактов в адресной книге пишет "Требуемый контакт не найден". Пока еще не разбирался с этим. Большинством контактов показывает и при наборе сообщения тоже дописывает имена.
Случайно увидел, пусть и поздно, но может кому пригодится мое решение http://blog.imega.ru/archives/59