getUser($request); if ($user->id !== $observedUser->id) { // absichtlich keine AuthorizationFailedException // damit unsichtbare Nutzer nicht ermittelt werden können throw new RecordNotFoundException(); } $export = new \CalendarExport(new \CalendarWriterICalendar()); $export->exportFromDatabase($observedUser->id, 0, 2114377200, ['CalendarEvent', 'CourseEvent', 'CourseCancelledEvent']); if ($GLOBALS['_calendar_error']->getMaxStatus(\ErrorHandler::ERROR_CRITICAL)) { throw new InternalServerError(); } $content = implode($export->getExport()); $response->getBody()->write($content); return $response->withHeader('Content-Type', 'text/calendar') ->withHeader('Content-Disposition', 'attachment; ' . encode_header_parameter('filename', 'studip.ics')); } }