T1319: Fix bug where incorrect organizer could be set on a new event in delegated folder

This commit is contained in:
Aleksander Machniak 2016-06-21 06:22:26 -04:00
parent 9e073403b8
commit 92b0169834
2 changed files with 15 additions and 8 deletions

View file

@ -2032,17 +2032,28 @@ class calendar extends rcube_plugin
$event['attendees'][$i]['rsvp'] = $attendee['rsvp'] == 'true' || $attendee['rsvp'] == '1'; $event['attendees'][$i]['rsvp'] = $attendee['rsvp'] == 'true' || $attendee['rsvp'] == '1';
} }
if (!empty($event['_identity'])) {
$identity = $this->rc->user->get_identity($event['_identity']);
}
// set new organizer identity // set new organizer identity
if ($organizer !== false && !empty($event['_identity']) && ($identity = $this->rc->user->get_identity($event['_identity']))) { if ($organizer !== false && $identity) {
$event['attendees'][$organizer]['name'] = $identity['name']; $event['attendees'][$organizer]['name'] = $identity['name'];
$event['attendees'][$organizer]['email'] = $identity['email']; $event['attendees'][$organizer]['email'] = $identity['email'];
} }
// set owner as organizer if yet missing // set owner as organizer if yet missing
if ($organizer === false && $owner !== false) { else if ($organizer === false && $owner !== false) {
$event['attendees'][$owner]['role'] = 'ORGANIZER'; $event['attendees'][$owner]['role'] = 'ORGANIZER';
unset($event['attendees'][$owner]['rsvp']); unset($event['attendees'][$owner]['rsvp']);
} }
// fallback to the selected identity
else if ($organizer === false && $identity) {
$event['attendees'][] = array(
'role' => 'ORGANIZER',
'name' => $identity['name'],
'email' => $identity['email'],
);
}
} }
// mapping url => vurl because of the fullcalendar client script // mapping url => vurl because of the fullcalendar client script

View file

@ -909,10 +909,6 @@ function rcube_calendar_ui(settings)
if (organizer) if (organizer)
data._identity = $('#edit-identities-list option:selected').val(); data._identity = $('#edit-identities-list option:selected').val();
// don't submit attendees if only myself is added as organizer
if (data.attendees.length == 1 && data.attendees[0].role == 'ORGANIZER' && String(data.attendees[0].email).toLowerCase() == settings.identity.email)
data.attendees = [];
// per-attendee notification suppression // per-attendee notification suppression
var need_invitation = false; var need_invitation = false;
if (allow_invitations) { if (allow_invitations) {