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: | 4.7 | ||
Target Milestone: | --- | ||
Platform: | Ubuntu | ||
OS: | Linux | ||
Latest Commit: | Version Fixed 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 |