[dev] Kronolith resources
Michael Rubinsky
mrubinsk at horde.org
Mon Sep 21 14:54:53 UTC 2009
Quoting Gunnar Wrobel <p at rdus.de>:
> Quoting Michael Rubinsky <mrubinsk at horde.org>:
>
>>
>> Quoting Gunnar Wrobel <p at rdus.de>:
>>
>>> Hi Micheal,
>>>
>>> thanks for pushing your branch.
>>>
>>> Quoting Michael Rubinsky <mrubinsk at horde.org>:
>>>
>>> [snip]
>>>
>>>>
>>>> Gunnar, could you take a look too and see what would be needed to
>>>> make integrating this into kolab more likely?
>>>
>>> I did take a short look and I will take a more closer look once I'm
>>> switching to kronolith - probably soon. Currently Kolab does not
>>> depend on Kronolith for the management of resources. Do you think it
>>> would be possible to move the Resource library parts into the Horde
>>> framework? Then I could rip my resource code out of the Kolab_Filter
>>> package - where it does not belong anyway - and try to merge the two.
>>
>> I suppose that it's possible, but there are a number of issues that
>> come to mind:
>>
>> Currently, resources are basically just another internal kronolith
>> calendar (with the calendar_id prefixed with 'resource_'). When an
>> event is saved, all resources attached to the event are reviewed
>> immediately, and if the invitation is accepted, the event is
>> updated with the resource's response, the event is added to the
>> resource's calendar and stored in the kronolith_objects table. In
>> fact, the resource storage driver is just an extension of the SQL
>> driver. Obviously, it wouldn't be too difficult to pull out the
>> resource storage driver and put it into Horde, thus allowing us to
>> have separate SQL and Kolab resource drivers. (Though this would
>> mean the addition of database tables, essentially duplicating the
>> kronolith_events table). What I'm thinking _will_ be an issue
>> though is allowing admins to manually manage the resource's
>> calendar. Right now, an admin can add events manually to a
>> resource's calendar just like an event is added to any other
>> internal kronolith calendar...since these calendars *are* internal
>> kronolith calendars. (While these events won't be associated with
>> any events like an attendee, it would be useful for blocking out
>> time for say, maintenance or whatever). Admins are also able to
>> delete events from the resource's calendar (and if that event
>> corresponds to an invitation that has already been accepted, that
>> invitation is revoked/denied). I'm afraid that pulling the storage
>> code out of Kronolith would essentially make these calendars
>> remote calendars and more difficult to manage directly in kronolith.
>
> That would probably be too much. My original statement "move the
> Resource library parts into the Horde framework" wasn't quite clear.
> I believe Resources are indeed an integral part of Kronolith as
> they are solely concerned with events and that is also what
> Kronolith is about. So I think the tables should remain there.
>
> What I was thinking about could probably be reduced to accessing the
> resources via the Kronolith API. If there'd be a Horde_Resource
> package its primary intention would be to wrap the resource access.
> The Horde driver would use the Kronolith API and the Kolab driver
> would directly access the Kolab IMAP storage.
Ah. That sounds much better :)
Shouldn't be too much of an issue adding support for resources to
Kronolith's API. I've got to finish fleshing out some stuff
internally, but I can work on adding it after the internals are
working. I'm guessing we would basically need a method to request a
resource booking that would take an iCalendar and have it return some
kind of acceptance value? If/when you know what other methods we
would need, please let me know so I don't overlook anything.
> On top of that the iTip-Handling would go into into this
> Horde_Resource package.
>
> I'm not certain if it would be a benefit to have general conflict
> handling in this package. Then Kronolith would need to access its
> own resources via the package and its API for booking a resource.
> That might be too much.
I agree. I think that would be too messy. Kronolith can take care of
the auto-acceptance, conflict management etc... and I suppose your
Kolab driver could do the same for the kolab resources.
>>
>> I'm willing to give it a try though, and see what happens with it.
>> My concern is that this work is for a client, and there is a time
>> issue here. I could probably get the resource stuff pulled out
>> into Horde if there are no big issues, but the iTip stuff you
>> describe below I'm almost positive I won't be able to implement in
>> time. So...if I can pull out the storage, I'll make that work as
>> it does now in kronolith with the thought that the iTip stuff can
>> come later.
>
> We do already have two iTip-handling code sections. The original one
> in IMP and the one in the Kolab_Filter package (which has been
> derived from the original version in IMP). It shouldn't be much a
> problem for me to combine the two in a potential Horde_Resource
> package.
The iTip Mime viewer? Cool. My concern was more about parsing the
iTip out of the email addressed to the resource. Not too much
experience in that area :)
>> Jan/Chuck, any thoughts on this?
>>
>>
>>
>>>> I'm honestly not sure how this would work with resources not
>>>> having to be user accounts.
>>>
>>> Kolab integrates the resource management into the MTA mailpath. Once a
>>> mail contains an iTip part and is addressed to a resource account
>>> (e.g. resource at example.org) it will be converted into an event for the
>>> resource (as long as the resource allows automatic booking).
>>
>>> For the Horde variant of resources I could imagine using the same
>>> approach but work with "+"-addressing. So if somebody from the outside
>>> wishes to book "room101" then he would add the attendee
>>> resources+room101 at example.org.
>>
>>>> Both specifically to Kolab, and in a more general sense in
>>>> allowing the use of iTip notifications for resource request. I
>>>> suppose that if each resource had it's own email account (and
>>>> corresponding horde account) the resource could be given an email
>>>> address as it's identifier, then any iTip notifications would be
>>>> send to the resources's email address...but that would require a
>>>> user to login to horde as the resource to accept it, right?
>>>
>>> That depends. You've already implemented different types of behavior
>>> for the resources. If a resource does always accept an invitation
>>> (even if overbooking the resource) or if it only rejects if there is a
>>> conflict then you can handle all incoming iTip invitations
>>> automatically. As long as an iTip message can be consumed directly
>>> there is no need for a real user to log in and check the incoming
>>> invitations. So I think it should be no real problem to implement at
>>> least the core functionality here. I believe booking with rejection if
>>> there is a conflict is what most people want to have with resources.
>>>
>>> What I did not consider now are access restriction. But I guess it
>>> should not be too hard to provide different rights to different mail
>>> adresses if you don't want the whole word to send your conference room
>>> invitations.
>>
>> Thanks,
>> mike
>>
>> --
>> The Horde Project (www.horde.org)
>> mrubinsk at horde.org
>>
>> "Time just hates me. That's why it made me an adult." - Josh Joplin
>>
>> --
>> Horde developers mailing list - Join the hunt: http://horde.org/bounties/
>> Frequently Asked Questions: http://horde.org/faq/
>> To unsubscribe, mail: dev-unsubscribe at lists.horde.org
>>
>
>
>
>
>
Thanks,
mike
--
The Horde Project (www.horde.org)
mrubinsk at horde.org
"Time just hates me. That's why it made me an adult." - Josh Joplin
More information about the dev
mailing list