From d3126cd1bb156c19272473fbf86ef9b56b19f284 Mon Sep 17 00:00:00 2001 From: Richard Steinmetz Date: Thu, 23 Jan 2025 21:12:16 +0100 Subject: [PATCH] fix(dav): default calendar and address book not created on first login Signed-off-by: Richard Steinmetz --- apps/dav/lib/AppInfo/Application.php | 2 +- build/integration/dav_features/caldav.feature | 5 +++++ build/integration/dav_features/carddav.feature | 4 ++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php index 2325a3c3ba8f2..ae587c98965f8 100644 --- a/apps/dav/lib/AppInfo/Application.php +++ b/apps/dav/lib/AppInfo/Application.php @@ -81,6 +81,7 @@ use OCP\Config\BeforePreferenceSetEvent; use OCP\Contacts\IManager as IContactsManager; use OCP\DB\Events\AddMissingIndicesEvent; +use OCP\EventDispatcher\GenericEvent; use OCP\EventDispatcher\IEventDispatcher; use OCP\Federation\Events\TrustedServerRemovedEvent; use OCP\Files\AppData\IAppDataFactory; @@ -91,7 +92,6 @@ use OCP\User\Events\OutOfOfficeScheduledEvent; use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; -use Symfony\Component\EventDispatcher\GenericEvent; use Throwable; use function is_null; diff --git a/build/integration/dav_features/caldav.feature b/build/integration/dav_features/caldav.feature index 031685b580dff..f324f720bbd30 100644 --- a/build/integration/dav_features/caldav.feature +++ b/build/integration/dav_features/caldav.feature @@ -87,3 +87,8 @@ Feature: caldav When "user0" requests principal "users/user0" on the endpoint "/remote.php/dav/principals/" Then The CalDAV response should be multi status And The CalDAV response should contain a property "{urn:ietf:params:xml:ns:caldav}schedule-default-calendar-URL" with a href value "/remote.php/dav/calendars/user0/MyCalendar2/" + + Scenario: Should create default calendar on first login + Given user "first-login" exists + When "first-login" requests calendar "first-login/personal" on the endpoint "/remote.php/dav/calendars/" + Then The CalDAV HTTP status code should be "207" diff --git a/build/integration/dav_features/carddav.feature b/build/integration/dav_features/carddav.feature index ffee11a284f49..f1ea46af8862b 100644 --- a/build/integration/dav_features/carddav.feature +++ b/build/integration/dav_features/carddav.feature @@ -79,3 +79,7 @@ Feature: carddav Then The CardDAV HTTP status code should be "404" And The CardDAV exception is "Sabre\DAV\Exception\NotFound" And The CardDAV error message is "File not found: admin in 'addressbooks'" + + Scenario: Should create default addressbook on first login + Given user "first-login" exists + Then "first-login" requests addressbook "first-login/contacts" with statuscode "207" on the endpoint "/remote.php/dav/addressbooks/users/"