Summary | Can't update attendee status via iTip |
Queue | Kronolith |
Queue Version | 2.0.1 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | |
Requester | aaron (at) thatone (dot) com |
Created | 01/13/2005 (7485 days ago) |
Due | |
Updated | 01/15/2005 (7483 days ago) |
Assigned | |
Resolved | 01/15/2005 (7483 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
State ⇒ Resolved
Thanks for the analysis.
State ⇒ Unconfirmed
Priority ⇒ 1. Low
Type ⇒ Bug
Summary ⇒ Can't update attendee status via iTip
Queue ⇒ Kronolith
I add an attendee to a meeting, and then click "Save Event" while
leaving the "Send Updates..." box checked. The meeting invite is sent
out properly to the attendee, as an attached .ics file. The attendee
then checks their e-mail in Horde/IMP, and uses Horde to accept the
meeting invitation. Horde automatically sends me an e-mail saying
"Accepted: (Meeting title)". When I view this, I can click on
"event-reply.ics" under the "Alternative parts for this section" box,
and Horde pops up a window allowing me to update the respondent's
status. However, clicking "OK" to do so, causes an error message to
the effect of "Event not found".
It looks like the cause of the problem is that the .ics file which
gets sent out to the attendees in the beginning doesn't have the UID
for the event filled in. There is a "UID:" field, but it's blank. As a
result, the confirmation they send back also lacks a UID, so Horde
can't tell which event they're responding to.
The problem seems to be in kronolith/addeventaction.php . If I'm
reading the code properly, on line 25 ( $result = $event->save(); ),
the event is loaded into the database. It's at this point that its UID
is generated. However, the save() function only returns the event's ID
(the value in column "event_id" of the database), not its UID (the
value in column "event_uid" of the database), so $event still has no
value for $event->_uid when Kronolith::sendITipNotifications() is
called on line 37.
When I wrote a cheap hack on my local system which directly queries
MySQL to find out the UID, and then sets it using $event->setUID(),
then I was able to click on "event-ics" in a meeting confirmation and
successfully update the attendee's status. However, I don't know
enough about the Horde framework to write a proper fix.