| Summary: | KOrganizer resends meeting invites, even though Groupware communication is off | ||
|---|---|---|---|
| Product: | [Applications] korganizer | Reporter: | Stephan Diestelhorst <stephan.diestelhorst> |
| Component: | invitations | Assignee: | Sergio Martins <smartins> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | smartins |
| Priority: | NOR | ||
| Version First Reported In: | 4.7 | ||
| Target Milestone: | --- | ||
| Platform: | Ubuntu | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Stephan Diestelhorst
2011-09-19 13:14:34 UTC
Just inspecting the email that got send: it is not the original email, but rather is a text rending of the appointment and the attached ICS file. Digging through the code, and using GDB, I confirmed the following
flow of code (on 4.7.0):
bool IncidenceChanger::Private::performChange
( Change *change ) at calendarsupport/incidencechanger.cpp:99
CalendarSupport::IncidenceChanger::Private::changeIncidenceFinished
(this=0xc81910,) at calendarsupport/incidencechanger.cpp:233
CalendarSupport::InvitationHandler::sendIncidenceModifiedMessage
(this=0x7fffffffcfc0, method=KCalCore::iTIPRequest,
incidence=..., attendeeStatusChanged=false) at
calendarsupport/next/invitationhandler.cpp:374
Interestingly, IncidenceChanger::Private::performChange
(calendarsupport/incidencechanger.cpp) contains all the proper logic:
it checks KCalPrefs::instance()->mUseGroupwareCommunication and then
displays a message box, if I am not the organiser of an event, via
InvitationHandler::handleIncidenceAboutToBeModified
(calendarsupport/next/invitationhandler.cpp)
However, it seems the logic has been duplicated and split to handle
asynchronous Akonadi interaction through new Akonadi::ItemModifyJob(...)
and then void IncidenceChanger::Private::changeIncidenceFinished( KJob *j ).
That function does not check for the mUseGroupwareCommunication flag,
nor does it present the user with a dialog box when he is not the organiser.
Through handler.sendIncidenceModifiedMessage(...) which eventually
ends up calling
...
} else {
return d->sentInvitation( KMessageBox::Yes, incidence, method );
}
sending out invitations, although the user is not the organiser nor has group-
communication enabled and never has a chance to intercept.
Adding an additional check for the groupware flag and asking the user
in changeIncidenceFinished once again would b straight-forward. Any
preference?
This has been caused by commit d75ba75aea478f754b12f4a1c245dab2d4eb50d9 Author: Sergio Martins <iamsergio@gmail.com> Date: Sun Mar 13 21:10:36 2011 +0000 and commit d5b228631ecf89df4b9e3c9e3c4e8d866e72a11d Author: Sergio Martins <iamsergio@gmail.com> Date: Sun Mar 13 21:04:35 2011 +0000 Adding Sergio, since his changes seem to introduce the regression. Git commit 441d81e5aaa3eb5d47586afc1a368a13ce557789 by Sergio Martins. Committed on 09/11/2011 at 21:45. Pushed by smartins into branch 'master'. Don't send iTip messages if groupware is turned off. Debugged by Stephan Diestelhorst. BUG: 282346 M +15 -14 calendarsupport/incidencechanger.cpp http://commits.kde.org/kdepim/441d81e5aaa3eb5d47586afc1a368a13ce557789 Git commit 1ecd90656cdd4a1774ad30c56baed5fccafeb244 by Sergio Martins. Committed on 09/11/2011 at 21:45. Pushed by smartins into branch 'KDE/4.7'. Don't send iTip messages if groupware is turned off. Debugged by Stephan Diestelhorst. BUG: 282346 (cherry picked from commit 441d81e5aaa3eb5d47586afc1a368a13ce557789) Conflicts: calendarsupport/incidencechanger.cpp M +15 -12 calendarsupport/incidencechanger.cpp http://commits.kde.org/kdepim/1ecd90656cdd4a1774ad30c56baed5fccafeb244 |