diff --git a/app/controllers/calendar/date.php b/app/controllers/calendar/date.php index c812cb1ae82c9d1f3545c3bcd7432f64f45e8c58..a3a80f146734a7c8943af8213d884166ac5f38b0 100644 --- a/app/controllers/calendar/date.php +++ b/app/controllers/calendar/date.php @@ -792,7 +792,11 @@ class Calendar_DateController extends AuthenticatedController ); $this->render_nothing(); } - $this->date_has_repetitions = !empty($this->date->repetition_type); + if (!$this->date->isWritable($GLOBALS['user']->id)) { + throw new AccessDeniedException(_('Sie sind nicht berechtigt, diesen Termin zu löschen.')); + } + + $this->date_has_repetitions = $this->date->repetition_type !== CalendarDate::REPETITION_SINGLE; $this->selected_date = null; if ($this->date_has_repetitions) { $this->selected_date = Request::getDateTime('selected_date'); @@ -835,7 +839,8 @@ class Calendar_DateController extends AuthenticatedController $delete_whole_date = true; } } else { - $delete_whole_date = $this->multiple_calendar_handling === 'delete_all'; + $delete_whole_date = !$this->date_is_in_multiple_calendars + || $this->multiple_calendar_handling === 'delete_all'; } if ($delete_whole_date) { if ($this->date->delete()) {