[prev in list] [next in list] [prev in thread] [next in thread] 

List:       turba
Subject:    Re: [turba] Automatic Add of Recipient To Address Book Fails With ObjectClass violation or "Schema n
From:       Jan Schneider <jan () horde ! org>
Date:       2015-08-31 21:23:42
Message-ID: 20150831232342.Horde.djNDwf-h5TZNdKfwyhJdiAl () neo ! wg ! de
[Download RAW message or body]


Zitat von Andy Dorman <AndyDorman@comehome.net>:

> We have been happily using LDAP for our address books for many  
> years...at some point in the last year or two we lost the ability to  
> automatically add new recipient addresses to our personal_ldap  
> address book when sending an email.
> 
> Our installation is the latest Debian package of Horde Groupware  
> Webmail Edition 5.2.7 with Turba 4.2.7 and OpenLDAP 2.4.41.
> 
> I am certain I have something misconfigured because I have not seen  
> anything about this in the wiki or mailing lists, but I can not  
> figure out what I have missed.
> 
> The problem is the 'inetOrgPerson' object class requires the 'sn'  
> (lastname) attribute, so with checkrequired = false, when Turba  
> tries to automatically add a recipient address, it does not supply  
> 'sn' and openLDAP throws an ObjectClass violation like this:
> 
> Entry  
> (uid=20150819142842.-fDOkvc4NwFWmfMpjyODUEw@mail.bulldogs.com,uid=andydorman@comehome.net,ou=addresses,o=antespam.com): \
> object class 'inetOrgPerson' requires attribute   'sn'
> 
> I tried setting checkrequired = true and checkrequired_string to  
> some string (I have tried both ' ' and '-'), but when I do this I  
> get a Horde LDAP error, "Schema not initialized", when adding a new  
> address book entry BOTH manually or automatically.
> 
> $cfgSources['personal_ldap']['params']['checkrequired'] = true;
> $cfgSources['personal_ldap']['params']['checkrequired_string'] = ' ';
> 
> If we set 'checkrequired' = false, we can manually add an entry to  
> an address book (because we have a value for 'sn'), but we are then  
> back to the ObjectClass violation when Turba tries to automatically  
> add a recipient without an 'sn'.
> 
> I have looked at the git code and found where the "Schema not  
> initialized" error is set on line 1329 of  
> https://github.com/horde/horde/blob/master/framework/Ldap/lib/Horde/Ldap.php, but \
> so far I have not been able to understand why new Horde_Ldap_Schema fails on the \
> next line when checkrequired =   true;
> 
> So any idea about what I might be doing wrong?  Turba works great  
> except for not being able to automatically add a recipient when  
> sending email (with checkrequired = false).
> 
> Our complete turba/config/backends.local.php is below if that helps.
> ================
> $cfgSources['localsql']['disabled'] = true;
> 
> /* First get the uid and set the base DN. */
> $_ldap_uid = strtolower($GLOBALS['registry']->getAuth());
> $_ldap_basedn = ',ou=addresses,o=antespam.com';
> 
> // enable the personal_ldap address book
> $cfgSources['personal_ldap']['disabled'] = false;
> 
> // talk to localhost and let the slapd updateref refer writes to the  
> master...
> $cfgSources['personal_ldap']['params']['server'] = 'localhost';
> $cfgSources['personal_ldap']['params']['bind_dn'] = 'uid=' .  
> $_ldap_uid . $_ldap_basedn;
> $cfgSources['personal_ldap']['params']['bind_password'] =  
> $GLOBALS['registry']->getAuthCredential('password');
> 
> // according to my research, these are the objectclasses needed to  
> provide the fields below
> $cfgSources['personal_ldap']['params']['objectclass'] = array('top',  
> 'person', 'inetOrgPerson', 'organizationalPerson');
> 
> $cfgSources['personal_ldap']['params']['referrals'] = 1;
> $cfgSources['personal_ldap']['params']['tls'] = false;
> $cfgSources['personal_ldap']['params']['root'] = 'uid=' . $_ldap_uid  
> . $_ldap_basedn;
> $cfgSources['personal_ldap']['params']['scope'] = 'sub';
> 
> // check the object classes to make sure we have the required fields  
> to add a contact
> $cfgSources['personal_ldap']['params']['checkrequired'] = false;
> $cfgSources['personal_ldap']['params']['checkrequired_string'] = ' ';
> $cfgSources['personal_ldap']['params']['checksyntax'] = false;
> 
> // set up our own mapping cause the object_pgppublickey field caused  
> LDAP to complain about "bad filter"
> $cfgSources['personal_ldap']['map'] = array(
> '__key' => 'dn',
> '__uid' => 'uid',
> 'name' => 'cn',
> 'email' => 'mail',
> 'firstname' => 'givenName',
> 'lastname' => 'sn',
> 'title' => 'title',
> 'company' => 'organizationName',
> 'businessCategory' => 'businessCategory',
> 'workAddress' => 'postalAddress',
> 'workPostalCode' => 'postalCode',
> 'workPhone' => 'telephoneNumber',
> 'fax' => 'facsimileTelephoneNumber',
> 'homeAddress' => 'homePostalAddress',
> 'homePhone' => 'homePhone',
> 'cellPhone' => 'mobile',
> 'notes' => 'description',
> 'office' => 'roomNumber',
> 'department' => 'ou',
> 'nickname' => 'displayName',
> 'website' => 'labeledURI'
> );

What happens if you add a contact from an open message?

-- 
Jan Schneider
The Horde Project
http://www.horde.org/

-- 
turba mailing list
Frequently Asked Questions: http://wiki.horde.org/FAQ
To unsubscribe, mail: turba-unsubscribe@lists.horde.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic