[horde] [turba] FBURL (freebusyUrl) field missing in vCard export and CardDAV
Pulz, Joerg
Joerg.Pulz at frm2.tum.de
Thu May 29 07:24:30 UTC 2014
Hi,
i stumbled over a problem when exporting address book entries as vCard
or synching those using CardDAV.
The address book in question is LDAP based.
As the LDAP entries do not contain an attribute holding the
freebusyUrl, i construct this field in backends.local.php:
$cfgSources['localldap']['map']['freebusyUrl'] = array(
'fields' => array('username'),
'format' => Horde::url($GLOBALS['registry']->get('webroot',
'kronolith') . '/fb.php', true, -1) . '?u=%s
);
This is working fine as long as i use the WebUI, the freebusyUrl field
contains a valid URL and i can even use it in kronolith.
When i try to export the address book as vCard or try to sync using
CardDAV there is no FBURL field in the .vcf file at all, so it seems
the information is getting lost somewhere on the road when generating
the vCard file(s).
I started to dig in the code to see where it happens and it seems to
be related to my manual construction of the freebusyUrl in
backends.local.php.
If i change this to a valid (any) LDAP attribute e.g.:
$cfgSources['localldap']['map']['freebusyUrl'] = 'dn';
then the FBURL field is in the vCard file containing the exact the
value of the LDAP attribute.
So it seems that during generation of vCard file(s) only values
directly returned by the backend are honored and others are simply
ignored.
Just before line 547 in turbo/lib/Application.php
foreach ($results as $ob) {
if ($vcard) {
$data[] = $driver->tovCard($ob, $version, null, true);
the object contains all data e.g.:
["freebusyUrl"]=>
array(2) {
["fields"]=>
array(1) {
[0]=>
string(8) "username"
}
["format"]=>
string(48) "https://server.domain.tld/kronolith/fb.php?u=%s"
}
but "freebusyUrl" is missing in $fields e.g.:
["fields"]=>
array(24) {
["__key"]=>
string(2) "dn"
["__uid"]=>
string(3) "uid"
["name"]=>
string(2) "cn"
["email"]=>
string(4) "mail"
["homePhone"]=>
string(9) "homephone"
["workPhone"]=>
string(15) "telephonenumber"
["cellPhone"]=>
string(21) "mobiletelephonenumber"
["homeAddress"]=>
string(17) "homepostaladdress"
["firstname"]=>
string(9) "givenName"
["lastname"]=>
string(2) "sn"
["username"]=>
string(3) "uid"
["uidnumber"]=>
string(9) "uidNumber"
["gidnumber"]=>
string(9) "gidNumber"
["gecos"]=>
string(5) "gecos"
["homedirectory"]=>
string(13) "homeDirectory"
["loginshell"]=>
string(10) "loginShell"
["fax"]=>
string(24) "facsimileTelephoneNumber"
["pager"]=>
string(5) "pager"
["workRoom"]=>
string(10) "roomNumber"
["department"]=>
string(16) "departmentNumber"
["company"]=>
string(2) "ou"
["workStreet"]=>
string(13) "postalAddress"
["workCity"]=>
string(10) "postalCode"
["workCountry"]=>
string(2) "st"
}
As $fields is honored by turba's "tovCard" the freebusyUrl information
get's lost there.
Is there a chance to change the code that self constructed values are
honored during vCard generation instead of only using attribute values
returned by the LDAP backend itself? This would be really helpful as
modifying the complete LDAP directory to add a real attribute that
holds the freebusyUrl is not an option.
Kind regards
Joerg
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-keys
Size: 1330 bytes
Desc: PGP Public Key
URL: <http://lists.horde.org/archives/horde/attachments/20140529/ef9f62b2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: PGP Digital Signature
URL: <http://lists.horde.org/archives/horde/attachments/20140529/ef9f62b2/attachment-0001.bin>
More information about the horde
mailing list