[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