Hi!
Testing a bit shared calendar today, I realized that there is an issue with the "on behalf of" ("SENT-BY=") in the mail templates.
From what I can see, the `SENT-BY=` in the organizer field is set at the creation of the event, never changed and then used for every notification.
This means that even if someone else modifies the event afterwards, the original creator will be mentioned.
Here is how I triggered this bug/weird behavior:
- Create 3 users, 'vbrillau' ("Vincent Brillault"), 'vbritest' ("Vincent Brillault (test)"), 'vbriserv' ("Vincent Brillault (serv)").
- As user 'vbrillau', share a calendar with user 'vbritest'
- As user 'vbritest', create an event in the shared calendar of user 'vbrillau', on behalf of them
- As user 'vbrillau', edit the event created by 'vbritest' and add the user 'vbriserv'
The notification sent to 'vbriserv' said:
> You have been invited to an appointment by Vincent Brillault (test) on behalf of Vincent Brillault
Which is not true, it's 'Vincent Brillault' who invited vbriserv, not 'Vincent Brillault (test)' (who only created it).
Similarly, 'vbritest' received this notification:
> Vincent Brillault (test) has changed an appointment on behalf of Vincent Brillault:
> Vincent Brillault (serv) has been invited to the appointment.
Which is also no true, for the same reasons.
I could imagine few solution:
Vincent
Testing a bit shared calendar today, I realized that there is an issue with the "on behalf of" ("SENT-BY=") in the mail templates.
From what I can see, the `SENT-BY=` in the organizer field is set at the creation of the event, never changed and then used for every notification.
This means that even if someone else modifies the event afterwards, the original creator will be mentioned.
Here is how I triggered this bug/weird behavior:
- Create 3 users, 'vbrillau' ("Vincent Brillault"), 'vbritest' ("Vincent Brillault (test)"), 'vbriserv' ("Vincent Brillault (serv)").
- As user 'vbrillau', share a calendar with user 'vbritest'
- As user 'vbritest', create an event in the shared calendar of user 'vbrillau', on behalf of them
- As user 'vbrillau', edit the event created by 'vbritest' and add the user 'vbriserv'
The notification sent to 'vbriserv' said:
> You have been invited to an appointment by Vincent Brillault (test) on behalf of Vincent Brillault
Which is not true, it's 'Vincent Brillault' who invited vbriserv, not 'Vincent Brillault (test)' (who only created it).
Similarly, 'vbritest' received this notification:
> Vincent Brillault (test) has changed an appointment on behalf of Vincent Brillault:
> Vincent Brillault (serv) has been invited to the appointment.
Which is also no true, for the same reasons.
I could imagine few solution:
- (Probably a big refactoring of the code and not fixing changes via caldav) Change the system sending the mail to not use the organizer field but who actually did the change in the WebUI when coming from the web UI
- (Probably wrong in some cases) Change the system sending the mail to not use the organizer field but the "changeBy" field
- (Probably wrong in some cases) When modifying a shared calendar on behalf of someone else, update the ("SENT-BY=") in the organizer field to who did the change
- (Quite complex but correct (?)) Change the phrasing template to pull both "changeBy" and "SENT-BY" with something like "$(changeBy) has changed an appointment organized by ${SENTBY} on behalf of ${organizer}", if the 3 are different (if not remove what's not required)....
Vincent
Comment