[dev] Kronolith resources
Michael Rubinsky
mrubinsk at horde.org
Sat Sep 19 19:23:24 UTC 2009
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.
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.
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
More information about the dev
mailing list