calDavBackend->getCalendarsForUser($principalUri) ?? []; if (!empty($calendarUris)) { $calendarInfos = array_filter($calendarInfos, function ($calendar) use ($calendarUris) { return in_array($calendar['uri'], $calendarUris); }); } $iCalendars = []; foreach ($calendarInfos as $calendarInfo) { $calendarInfo = array_merge($calendarInfo, $this->getAdditionalProperties($calendarInfo['principaluri'], $calendarInfo['uri'])); $calendar = new Calendar($this->calDavBackend, $calendarInfo, $this->l10n, $this->config, $this->logger); $iCalendars[] = new CalendarImpl( $calendar, $calendarInfo, $this->calDavBackend, ); } return $iCalendars; } public function getAdditionalProperties(string $principalUri, string $calendarUri): array { $user = str_replace('principals/users/', '', $principalUri); $path = 'calendars/' . $user . '/' . $calendarUri; $properties = $this->propertyMapper->findPropertiesByPath($user, $path); $list = []; foreach ($properties as $property) { if ($property instanceof Property) { $list[$property->getPropertyname()] = match ($property->getPropertyname()) { '{http://owncloud.org/ns}calendar-enabled' => (bool)$property->getPropertyvalue(), default => $property->getPropertyvalue() }; } } return $list; } }