Summary | invation emails are handled wrong |
Queue | Kronolith |
Queue Version | 4.0.3 |
Type | Bug |
State | Resolved |
Priority | 1. Low |
Owners | mrubinsk (at) horde (dot) org |
Requester | jmozdzen (at) nde (dot) ag |
Created | 01/17/2013 (4564 days ago) |
Due | |
Updated | 11/01/2013 (4276 days ago) |
Assigned | 01/21/2013 (4560 days ago) |
Resolved | 08/27/2013 (4342 days ago) |
Github Issue Link | |
Github Pull Request | |
Milestone | |
Patch | No |
yes, it works with latest code. Thanks for fixing!
State ⇒ Resolved
commit f0bebd4284bd36635b1f63be35089d01622e1729
Author: Michael J Rubinsky <mrubinsk@horde.org>
Date: Wed Jul 24 12:35:19 2013 -0400
DTEND is non-inclusive, Kronolith_Event::End is inclusive.
Bug: 12489kronolith/lib/Event.php | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
http://git.horde.org/horde-git/-/commit/f0bebd4284bd36635b1f63be35089d01622e1729
me. (As expected - I just wanted to verify & report back)
- create single-day event, myself as invitee. Kolab/IMAP backend
calendar entry has only start-date entry
- open email: gets displayed properly, due to below's cosmetic fix
- accept email: Kolab/IMAP backend calendar entry changes to
start-date, end-date (end date set to start date +1)
- even after logoff/logon, kronolith still shows the calendar view
entry as single-day. If I open the event, it does however show the
changed end date.
- Logoff, erasing the cache, logon, shows the event as two-day event
in kronolith's calendar view. Horde caching sucks.
Initation handling still seems broken, as accepting the invitation
does not adjust the end date according to the differences between
invitation and storage semantics for "end-date" and thus wrongly
modifies calendar entries. To me, this is a severe error.
Author: Jan Schneider <jan at horde.org>
Date: Sat Jan 26 13:44:25 2013 +0100
DTEND is non-inclusive.
display in IMP.
Unfortunately, it does not address the invalid modification of the
stored event details:
--- cut here: event data before the event is accepted ---
Content-Type: application/x-vnd.kolab.event; name=kolab.xml
Content-Disposition: inline; x-kolab-type=xml; filename=kolab.xml
Content-Transfer-Encoding: quoted-printable
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<event version=3D"1.0">
<uid>51051cde-17b0-45a1-ab3f-2805c0a86604</uid>
<body>single-day all-day event Jan 28<!--a75c305b1c0a6022--></body>
<categories></categories>
<creation-date>2013-01-27T12:26:06Z</creation-date>
<last-modification-date>2013-01-27T12:27:30Z</last-modification-date>
<sensitivity>public</sensitivity>
<product-id>Horde_Kolab_Format_Xml-2.0.2 (api version: 1)</product-id>
<summary>test event</summary>
<location>test location</location>
<start-date>2013-01-28</start-date>
<alarm>15</alarm>
<horde-alarm-methods>a:0:{}</horde-alarm-methods>
<show-time-as>busy</show-time-as>
<end-date>2013-01-28</end-date>
<attendee>
<display-name></display-name>
<smtp-address>jmozdzen@nde.ag</smtp-address>
<status>none</status>
<request-response>false</request-response>
<role>required</role>
</attendee>
</event>
--- cut here ---
--- cut here: stored event details after the event was accepted ---
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<event version=3D"1.0">
<uid>51051cde-17b0-45a1-ab3f-2805c0a86604</uid>
<body>single-day all-day event Jan 28<!--a75c305b1c0a6022--></body>
<categories></categories>
<creation-date>2013-01-27T12:26:06Z</creation-date>
<last-modification-date>2013-01-27T12:29:37Z</last-modification-date>
<sensitivity>public</sensitivity>
<product-id>Horde_Kolab_Format_Xml-2.0.2 (api version: 1)</product-id>
<summary>test event</summary>
<location>test location</location>
<start-date>2013-01-28</start-date>
<alarm>15</alarm>
<horde-alarm-methods>a:0:{}</horde-alarm-methods>
<show-time-as>busy</show-time-as>
<end-date>2013-01-29</end-date>
<attendee>
<display-name></display-name>
<smtp-address>jmozdzen@nde.ag</smtp-address>
<status>none</status>
<request-response>false</request-response>
<role>required</role>
</attendee>
</event>
--- cut here ---
As you can see clearly, the <end-date> element was overwritten with
the (false) exclusive end date from the invitation e-mail.
(Test case as originally reported - I created an event in my personal
calendar and added me as the only invitee - the resulting event entry
is listed above - then displayed the resulting invitation email in IMP
(this time with correctly displayed end date) and clicked "accept and
update in my calendar" - the resulting event entry contains the
modified end date, as listed above).
Let me know if I can help out somehow, i.e. by tracing some code path
in my installation.
Author: Jan Schneider <jan at horde.org>
Date: Sat Jan 26 13:44:25 2013 +0100
DTEND is non-inclusive.
imp/docs/CHANGES | 1 +
imp/lib/Mime/Viewer/Itip.php | 4 ++--
imp/package.xml | 2 ++
3 files changed, 5 insertions(+), 2 deletions(-)
http://git.horde.org/horde-git/-/commit/41b7f1264814bcaa9207f0c1e4af1d456bbccc17
correctly displayed as single-day events in all Kronolith views.
# pear list-upgrades
Channel pear.horde.org: No upgrades available
New Attachment: event.tar
correctly displayed as single-day events in all Kronolith views.
- create a new event, me as only participant. Single-day, Jan 21.
- I receive the invitation email in my inbox
- I accept the invation and have my event updated
I've attached a tar file with the Kolab event as stored in the IMAP
backend, both before and after accepting the invitation, as well as
the invitation e-mail.
When I display the invitation in IMP, I get the following display:
--- cut here ---
Beginn: 21.01.2013
Ende: 22.01.2013
Zusammenfassung: test event single day Jan 21
Ort: nowhere
Teilnehmer:
Name Rolle Status
Jens-Uwe Mozdzen Erforderlicher Teilnehmer Auf Antwort wartend
--- cut here ---
The displayed end date is quite misleading - everyone reading this
thinks this is a two-day event. Because the event actually doesn't end
on Jan 22, but Jan 21.
If you look at the HTML version contained in the email, it says the
end is Jan 21 23:59:59 - which is correct.
If you compare the two event files, you'll see the changed end date.
correctly displayed as single-day events in all Kronolith views.
State ⇒ Feedback
correctly displayed as single-day events in all Kronolith views.
change: This bug causes the display of wrong dates upon receiving
invitations and changes originally correct data in the back-end to
wrong values.
With other words: That piece of functionality is not only useless, but
messing up data that was previously correct. Which makes it a "high"
priority in my eyes, and I might have understood a "medium" since it
doesn't break all of Horde/Kronolith... but "low"?
Priority ⇒ 3. High
State ⇒ Unconfirmed
Patch ⇒ No
Milestone ⇒
Summary ⇒ invation emails are handled wrong
Type ⇒ Bug
Queue ⇒ Kronolith
according to RFC 2445, 4.6.1, specifies the non-inclusive end of the
event.
Kronolith stores the inclusive event end.
When sending an invitation, kronolith properly adjusts the included
text/calendar DTEND field.
When receiving an invitation, DTEND is falsely taken as the inclusive
end; when accepting an invitation, the event is therefore stored
wrongly.
This is especially bad for all-day events, as i.e. a single-day event
is stored as/changed to a two-day event.
This already affects displaying the invitation in IMP: Since the
displayed info there is based on the text/calendar part of the email,
rather than the human-readable part, the end date is displayed wrong.