[Kolab-devel] caldav backend to calender plugin

Daniel Morlock daniel.morlock at gmail.com
Mon Mar 24 14:20:49 CET 2014


Hi Thomas,

sorry I forgot your point about the password encryption. Michael 
Rasmussen suggested to use the mcrypt based methods described here: 
http://stackoverflow.com/questions/5089841/php-2-way-encryption-i-need-to-store-passwords-that-can-be-retrieved 
instead of the native rcube::encrypt, rcube::decrypt methods that are 
based on DES which "is ... considered to be insecure for many 
applications" (http://en.wikipedia.org/wiki/Data_Encryption_Standard).

Please note that I'm not a crypto-specialist, so feel free to correct me 
if I'm wrong =)

Regards,
Daniel.

On 2014-03-24 14:01, Daniel Morlock wrote:
> Hi Thomas,
> 
> thanks a lot for your time and effort!
> Please see the answers attached inline:
> 
> On 2014-03-24 11:40, Thomas Brüderli wrote:
>> Hello Daniel
>> 
>> I finally found some time to have a look at your work for the Kolab
>> calendar plugin to add CalDAV and iCal capabilities. First of all, 
>> many
>> thanks for your work and for sharing it with us!
>> 
>> Although I had some troubles getting it to work initially, the
>> multi-driver setup looks quite nice. So here are some remarks and
>> questions I have after the first quick look:
>> 
>> * The idea of extending the database_driver for synchronizing CalDAV 
>> and
>> iCal sources seems quite obvious. Here I'd suggest two things:
>> 
>> 1. Use dedicated tables for calendars and events and override
>> $db_calendars and $db_events properties in the caldav_driver class.
>> 
>> 2. Store the additional properties (url, etag, etc.) right in these
>> tables to avoid additional queries.
> 
> Point. But I think this are cosmetics in the database design where
> performance is not necessarily needed.
> 
>> 
>> * Question: what's the reason why driver names have the appendix 
>> "_driver"?
>> 
>> * You use an additional library and an extra config option to encrypt
>> the caldav/ical passwords. Why not using the already existing methods
>> from Roundcube core (rcube::encrypt and rcube::decrypt)? My PHP 
>> doesn't
>> have the Mycrpt extension and thus failed with fatal errors.
>> 
>> * For CalDAV synchronizing, I had to change REPORT <c:calendar-query>
>> with a PROPFIND request because SabreDAV driven CalDAV servers don't
>> support queries with no query criteria.
>> 
> 
> Indeed there might be some issues with different servers. Would you
> mind to send me a patch or similar so I can add it to the caldav
> branch?
> 
>> 
>> Some minor problems I found so far:
>> 
>> * Attachments to events don't get synchronized to the CalDAV server
> 
> Yep, this feature is still missing.
> 
>> 
>> * Moving an event from one driver to another fails
>> 
>> * Input fields for calendar URLs are a bit too small
>> 
>> * Stored passwords should not be populated the calendar edit form
>> 
>> * Auto-discovery kicks in even if I supply a full URL to a calendar
>> resource.
>> 
>> 
>> But finally, your changes integrate nicely and add good value to the
>> calendar codebase. KUDOS! We're certainly interested in adopting the
>> multi-driver changes and the iCal driver at first. For CalDAV I'd be
>> interested in seeing the implementation of Chris Moules for 
>> comparison.
> 
> Sounds legit. I'm also interested in Chris Moules implementation. Are
> there any sources available?
> Please keep me informed about your experience with Chris Moules 
> implementation!
> 
>> 
>> I'm not yet sure about the integration path for your commits into our
>> upstream repository. The new multi-driver changes are quite 
>> significant
>> and have the potential to break the calendar in a major way. Currently
>> some refactoring of the entire iTip handling is going on in git 
>> master.
>> Once that's done, we'll likely start with branching off git master and
>> then adding your changes to it. I'll keep the mailing list updated 
>> with
>> the progress on this.
> 
> Thanks a lot! Please don't hesitate to come back to me if you have any
> questions or if I can help you further!
> 
>> 
>> So again, many thanks for your work and stay tuned.
> 
> I will stay tuned =)
> 
>> 
>> Kind regards,
>> Thomas
> 
> Kind regards,
> Daniel.
> 
>> 
>> 
>> Daniel Morlock wrote:
>>> 2. Use the latest development sources:
>>> 
>>> $ git clone https://gitlab.awesome-it.de/kolab/roundcube-plugins.git
>>> $ cd roundcube-plugins
>>> $ git checkout feature_caldav
>>> 
>>> This can contain yet untested code and you might experience things 
>>> like
>>> the parentheses error. Should be rare, but it could happen.
>> 
>> _______________________________________________
>> devel mailing list
>> devel at lists.kolab.org
>> https://lists.kolab.org/mailman/listinfo/devel



More information about the devel mailing list