6.0.0-git
2019-03-18

[#11976] invation emails are handled wrong
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 2013-01-17 (2251 days ago)
Due
Updated 2013-11-01 (1963 days ago)
Assigned 2013-01-21 (2247 days ago)
Resolved 2013-08-27 (2029 days ago)
Milestone
Patch No

History
2013-11-01 10:55:56 jmozdzen (at) nde (dot) ag Comment #13 Reply to this comment
Does this fix?
Sorry, I must have missed the notification email for the bug update - 
yes, it works with latest code. Thanks for fixing!
2013-08-27 10:43:02 Jan Schneider Assigned to Michael Rubinsky
State ⇒ Resolved
 
2013-07-24 16:38:01 Michael Rubinsky Comment #12 Reply to this comment
Does this fix?
2013-07-24 16:37:50 Michael Rubinsky Comment #11 Reply to this comment
Changes have been made in Git (master):

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: 12489

   kronolith/lib/Event.php |    4 ++++
   1 files changed, 4 insertions(+), 0 deletions(-)

http://git.horde.org/horde-git/-/commit/f0bebd4284bd36635b1f63be35089d01622e1729
2013-02-16 13:21:29 jmozdzen (at) nde (dot) ag Comment #10 Reply to this comment
After updating to the lastest PEAR code, things still don't work for 
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.
2013-01-27 12:40:20 jmozdzen (at) nde (dot) ag Comment #9 Reply to this comment
Hi Jan,
commit 41b7f1264814bcaa9207f0c1e4af1d456bbccc17
Author: Jan Schneider <jan at horde.org>
Date:   Sat Jan 26 13:44:25 2013 +0100

     DTEND is non-inclusive.
I applied the change to my server and it does indeed correct the event 
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</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</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.
2013-01-26 12:57:14 Jan Schneider Comment #8 Reply to this comment
commit 41b7f1264814bcaa9207f0c1e4af1d456bbccc17
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
2013-01-21 18:08:18 jmozdzen (at) nde (dot) ag Comment #7 Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
Oh, I forgot: code level is latest from PEAR:

# pear list-upgrades
Channel pear.horde.org: No upgrades available
2013-01-21 18:03:31 jmozdzen (at) nde (dot) ag Comment #6
New Attachment: event.tar Download
Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
My test case:
- 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.
2013-01-21 18:02:22 Jan Schneider Comment #5 Reply to this comment
I tried with both SQL and Kolab backends.
2013-01-21 17:33:16 jmozdzen (at) nde (dot) ag Comment #4 Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
Are you using a Kolab back-end?
2013-01-21 17:28:46 Jan Schneider Comment #3
State ⇒ Feedback
Reply to this comment
Cannot reproduce. Imported all-day events from Thunderbird are 
correctly displayed as single-day events in all Kronolith views.
2013-01-18 17:59:47 jmozdzen (at) nde (dot) ag Comment #2 Reply to this comment
I just wanted to let you know that I cannot follow your priority 
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"?
2013-01-18 15:38:23 Michael Rubinsky Priority ⇒ 1. Low
 
2013-01-17 11:31:53 jmozdzen (at) nde (dot) ag Comment #1
Type ⇒ Bug
State ⇒ Unconfirmed
Priority ⇒ 3. High
Summary ⇒ invation emails are handled wrong
Queue ⇒ Kronolith
Milestone ⇒
Patch ⇒ No
Reply to this comment
Invitation e-mails typically contain DTSTART and DTEND fields. DTEND, 
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.

Saved Queries