[Kolab-devel] kolab-freebusy / CN in fb-vcal files
Gunnar Wrobel
wrobel at pardus.de
Mon Mar 3 16:09:41 CET 2008
Mike Gabriel <m.gabriel at das-netzwerkteam.de> writes:
> hi gunnar,
>
> thanks for working on this!!!
>
> Quoting Gunnar Wrobel <wrobel at pardus.de>:
>
>> I added patches to both Horde CVS and Kolab CVS to support the CN:
>>
>> http://cvs.horde.org/diff.php?r1=1.5&r2=1.6&f=framework%2FKolab%2FKolab%2FLDAP.php
>
> in userInfo you have to add the cn attribute to the ldap_search result
> array, otherwise in won't be in the user infos:
>
> <quote>
> function userInfo($uid)
> {
> $result = ldap_search($this->connection,
> $GLOBALS['conf']['kolab']['ldap']['basedn'],
> '(&(objectClass=kolabInetOrgPerson)(|(uid='.
> Horde_LDAP::quote($uid) . ')(mail=' .
> Horde_LDAP::quote($uid) . ')))',
> array('dn','mail','cn','uid','kolabHomeServer',
> ^^^^
> 'kolabFreeBusyFuture'));
> </quote>
Fixed, thanks.
>
>> http://kolab.org/cgi-bin/viewcvs-kolab.cgi/server/php-kolab/Kolab_Freebusy/Freebusy/Cache.php.diff?r1=1.7&r2=1.8
>
> in FreeBusyCache::store() the method Horde_Kolab_Freebusy::generate()
> is called. this method needs the CN fix as well. the generate method
> has to be called with cn as last option (my solution...):
>
> <quote>
> $vCal = $fb->generate(null, null, $access->fbpast, $access->fbfuture,
> $access->owner, $access->cn);
> </quote>
>
> and in Horde_Kolab_Freebusy::generate()
>
> you have to add the CN field to the list of method params:
>
> <quote>
> function &generate($startstamp = null, $endstamp = null,
> $fbpast = 0, $fbfuture = 60,
> $user = null, $cn=null)
> {
> [...]
>
> /* Create the new iCalendar. */
> $vCal = new Horde_iCalendar();
> $vCal->setAttribute('PRODID', '-//proko2//freebusy 1.0//EN');
> $vCal->setAttribute('METHOD', 'PUBLISH');
>
> /* Create new vFreebusy. */
> $vFb = &Horde_iCalendar::newComponent('vfreebusy', $vCal);
> if ($cn) {
> $cn_param = ';CN='. $cn ;
> }
> $vFb->setAttribute('ORGANIZER'. $cn_param, 'MAILTO:' . $user);
>
> $vFb->setAttribute('DTSTAMP', $_SERVER['REQUEST_TIME']);
> $vFb->setAttribute('DTSTART', $startstamp);
> $vFb->setAttribute('DTEND', $endstamp);
>
> [...]
>
> </quote>
Modified and in CVS upstream.
>
>
>> organizer = "ORGANIZER" orgparam ":"
>> cal-address CRLF
>>
>> orgparam = *(
>>
>> ; the following are optional,
>> ; but MUST NOT occur more than once
>>
>> (";" cnparam) / (";" dirparam) / (";" sentbyparam) /
>> (";" languageparam) /
>>
>> ; the following is optional,
>> ; and MAY occur more than once
>>
>> (";" xparam)
>>
>> )
>
> i also checked some iCal examples on wikipedia:
> http://en.wikipedia.org/wiki/ICalendar
>
> to my point of view an ORGANIZER with CN entry has to look like this:
>
> ORGANIZER;CN=Willi Winzig:MAILTO:w.winzig at get-bigger.heaven
>
> so i have modified the CN patch in the generate method a little that
> is called on fb store...
>
> BTW: i do not think that the CN patch has to be added to the load
> (from cache) function. once the ORGANIZER is properly stored in the
> cache, the fb-iCal file is also properly reproduced from freebusy file
> cache.
>
>>>>> Horde_iCalendar_vfreebusy::getName() does not return a valid friendly
>>>>> name for the ORGANIZER. this probably is mainly due to a missing CN
>>>>> param for the ORGANIZER in my freebusy cache files generated by the
>>>>> kolab-2.2 freebusy engine (i backported fb scripts from kolab-2.2 to
>>>>> kolab-2.1).
>>
>> What is the exact error that led to your assumption? Do the patches I
>> mentioned above fix the problem?
>
> no, unfortunately the problem is not yet fixed. whenever i want to
> view freebusy information in horde, i receive this php error:
>
> Notice: Undefined index: path in
> /usr/local/share/_horde-versions_/horde-webmail-1.1-rc1-netzwerkteam/lib/Horde/iCalendar/vfreebusy.php on line
> 106
>
>> I looked briefly at the vfreebusy.php code but I'm not certain that a
>> missing CN would indeed make the code. I think getName() should only
>> return an empty string then which seems to be fine.
>
> maybe, we have a different getName method?
>
> <quote>
> function getName()
> {
> $name = '';
> $method = !empty($this->_container) ?
> $this->_container->getAttribute('METHOD') : 'PUBLISH';
>
> if (is_a($method, 'PEAR_Error') || $method == 'PUBLISH') {
> $attr = 'ORGANIZER';
> } elseif ($method == 'REPLY') {
> $attr = 'ATTENDEE';
> }
>
> $name = $this->getAttribute($attr, true);
> if (isset($name[0]['CN'])) {
> return $name[0]['CN'];
> }
>
> $name = $this->getAttribute($attr);
> if (is_a($name, 'PEAR_Error')) {
> return '';
> } else {
> $name = parse_url($name);
> return $name['path'];
> }
> }
>
> </quote>
No, we have the same function. This means that the attribute value is
still somehow malformed. Normally it should be something like
"MAILTO:wrobel at example.com" which parse_url() should convert in
php -r 'var_dump(parse_url("MAILTO:wrobel at example.com"));'
array(2) {
["scheme"]=>
string(6) "MAILTO"
["path"]=>
string(18) "wrobel at example.com"
}
What is the attribute value in your case and why is the 'path' entry
missing?
Cheers,
Gunnar
>
> best,
> mike
>
> --
>
> das netzwerkteam
> mike gabriel, hamburger chaussee 240, 24113 kiel
>
> fon: +49 431 64 74 196
> voip/voicemail: +49 431 643 643 6
> fax: +49 431 64 74 276
> mail: m.gabriel at das-netzwerkteam.de, http://das-netzwerkteam.de
> FreeBusy:
> https://mail.das-netzwerkteam.de/mailxchange/kronolith/fb.php?u=m.gabriel%40das-netzwerkteam.de
>
> ----------------------------------------------------------------
> This message was sent using IMP, the Internet Messaging Program.
>
> _______________________________________________
> Kolab-devel mailing list
> Kolab-devel at kolab.org
> https://kolab.org/mailman/listinfo/kolab-devel
--
______ http://kdab.com _______________ http://kolab-konsortium.com _
p at rdus Kolab work is funded in part by KDAB and the Kolab Konsortium
____ http://www.pardus.de _________________ http://gunnarwrobel.de _
E-mail : p at rdus.de Dr. Gunnar Wrobel
Tel. : +49 700 6245 0000 Bundesstrasse 29
Fax : +49 721 1513 52322 D-20146 Hamburg
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Mail at ease - Rent a kolab groupware server at p at rdus <<
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
More information about the devel
mailing list