Re: Automatic Add of Recipient To Address Book Fails With ObjectClass violation or "Schema not initialized"
Andy Dorman <[email protected]> Wed, 02 Sep 2015 01:22:41 +0000
| Newsgroups | gmane.comp.horde.turba |
|---|---|
| Message-ID | <[email protected]> |
Quoting Jan Schneider <[email protected]>: > Zitat von Andy Dorman <[email protected]>: > >> 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 >> ([email protected],[email protected],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/ > I just tried to add your address by clicking on the From address in this email and selecting "Add to Address Book" and I got the same Object Class violation error. I am going to feel very stupid when I find out what I have done wrong. Andy Dormn -- Andy-------------------------------- This message was sent using FanMailPlus Webmail based on Horde Groupware. -- turba mailing list Frequently Asked Questions: http://wiki.horde.org/FAQ To unsubscribe, mail: [email protected]