[turba] deleting LDAP entries fails: "VFS not supported for this object."

Bernhard Erdmann be at berdmann.de
Tue Mar 27 09:18:00 UTC 2012


Quoting Jan Schneider <jan at horde.org> on Tue, 27 Mar 2012 10:49:34 +0200:

> Zitat von Bernhard Erdmann <be at berdmann.de>:
>
>> Quoting Jan Schneider <jan at horde.org> on Tue, 27 Mar 2012 10:33:31 +0200:
>>
>>> Zitat von Bernhard Erdmann <be at berdmann.de>:
>>>
>>>> Quoting Jan Schneider <jan at horde.org> on Tue, 27 Mar 2012 10:03:19 +0200:
>>>>
>>>>> Zitat von Bernhard Erdmann <be at berdmann.de>:
>>>>>
>>>>>> Quoting Jan Schneider <jan at horde.org> on Mon, 26 Mar 2012  
>>>>>> 10:04:45 +0200:
>>>>>>
>>>>>>> Zitat von Bernhard Erdmann <be at berdmann.de>:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> trying to delete a turba (version 3.0.12) contact results in  
>>>>>>>> the message "VFS not supported for this object." and the  
>>>>>>>> object is not deleted. The backend is OpenLDAP.
>>>>>>>>
>>>>>>>> Changing preferences in conf.php from a) to b) does not make  
>>>>>>>> a difference.
>>>>>>>>
>>>>>>>> a)
>>>>>>>> $conf['documents']['type'] = 'horde';
>>>>>>>>
>>>>>>>> b)
>>>>>>>> $conf['documents']['params']['vfsroot'] = '/var/lib/horde4';
>>>>>>>> $conf['documents']['type'] = 'File';
>>>>>>>
>>>>>>> You need the __uid attribute mapped in your address book  
>>>>>>> configuration for VFS to work.
>>>>>>>
>>>>>>> Jan.
>>>>>>
>>>>>>
>>>>>> Hi Jan, the __uid mapping is present in backends.local.php:
>>>>>>
>>>>>> <?php
>>>>>> $cfgSources['localsql']['disabled'] = true;
>>>>>>
>>>>>> $_ldap_uid = $GLOBALS['registry']->getAuth('bare');
>>>>>> $_ldap_basedn = 'dc=berdmann,dc=de';
>>>>>>
>>>>>> $cfgSources['localldap1'] = array(
>>>>>> 'title' => _("private Directory"),
>>>>>> 'type' => 'ldap',
>>>>>> 'params' => array(
>>>>>>    'server' => 'ldap',
>>>>>>    'port' => 389,
>>>>>>    'tls' => false,
>>>>>>    'root' => 'ou=private,ou=groups,' . $_ldap_basedn,
>>>>>>    'bind_dn' => 'uid=' . $_ldap_uid . ',ou=users,ou=accounts,'  
>>>>>> . $_ldap_basedn,
>>>>>>    'bind_password' =>  
>>>>>> $GLOBALS['registry']->getAuthCredential('password'),
>>>>>>    'sizelimit' => 1000,
>>>>>>    'dn' => array('cn'),
>>>>>>    'objectclass' => array('top','person',
>>>>>>                           'organizationalPerson','inetOrgPerson',
>>>>>>                           'abzillaPerson','myPerson'),
>>>>>>    'filter' => 'objectclass=inetOrgPerson',
>>>>>>    'charset' => 'utf-8',
>>>>>>    'checkrequired' => false,
>>>>>>    'checkrequired_string' => ' ',
>>>>>>    'version' => 3
>>>>>> ),
>>>>>> 'map' => array(
>>>>>>    '__key' => 'dn',
>>>>>>    '__uid' => 'uid',
>>>>>>    'name' => 'cn',
>>>>>>    'firstname' => 'givenname',
>>>>>>    'lastname' => 'sn',
>>>>>>    'email' => 'mail',
>>>>>>    'emails' => 'xmozillaSecondEmail',
>>>>>>    'cellPhone' => 'mobile',
>>>>>>    'homePhone' => 'homephone',
>>>>>>    'homePostalCode' => 'mozillaHomePostalCode',
>>>>>>    'homeCity' => 'mozillaHomeLocalityName',
>>>>>>    'homeAddress' => 'homepostaladdress',
>>>>>>    'homeStreet' => 'mozillaHomeStreet',
>>>>>>    'homeCountry' => 'mozillaHomeCountryName',
>>>>>>    'fax' => 'facsimileTelephoneNumber',
>>>>>>    'company' => 'o',
>>>>>>    'workPhone' => 'telephonenumber',
>>>>>>    'workStreet' => 'street',
>>>>>>    'workPostalCode' => 'postalCode',
>>>>>>    'workCity' => 'l',
>>>>>>    'workAddress' => 'postalAddress',
>>>>>>    'notes' => 'description',
>>>>>>    'birthday' => 'birthday'
>>>>>>    // 'freebusyUrl' => 'calFBURL'
>>>>>> ),
>>>>>> 'search' => array(
>>>>>>    'name',
>>>>>>    'email',
>>>>>>    'homePhone',
>>>>>>    'workPhone',
>>>>>>    'cellPhone',
>>>>>>    'homeAddress'
>>>>>> ),
>>>>>> 'strict' => array(
>>>>>>    'dn',
>>>>>> ),
>>>>>> 'public' => true,
>>>>>> 'readonly' => false,
>>>>>> 'admin' => array(),
>>>>>> 'export' => true,
>>>>>> 'browse' => true
>>>>>> );
>>>>>
>>>>> But that's not the backend configuration that's being used when  
>>>>> you get this error then.
>>>>>
>>>>
>>>>
>>>> Hi Jan, sure - I just tried again.
>>>
>>> Try adding 'uid' to the 'strict' setting.
>>>
>>
>>
>> Hi Jan, no difference (same error, no deletion occurs) after changing to:
>>
>>    'strict' => array(
>>        'dn',
>>        'uid'
>>    ),
>
> Well, then it's the obvious: that field is *not* a UID, i.e. it may be empty.
>


Hi Jan, I have added a dummy uid attribute (the individual DN) to each  
LDAP object (objectClass=inetOrgPerson) without an uid attribute. Now  
deleting an object is no problem.




More information about the turba mailing list