From 8fb04cd4d5f9b8937a0dadcfcd1663c5e83e4059 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 1ce59b44d8b5d..49d61dd354448 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; @@ -90,7 +91,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 aa1e3f6bde840..a9ac4f4ceacd3 100644 --- a/build/integration/dav_features/caldav.feature +++ b/build/integration/dav_features/caldav.feature @@ -81,3 +81,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 5b285dba2f84a..1688dada1449a 100644 --- a/build/integration/dav_features/carddav.feature +++ b/build/integration/dav_features/carddav.feature @@ -74,3 +74,7 @@ Feature: carddav When "user0" sends a create addressbook request to "admin/MyAddressbook2" on the endpoint "/remote.php/dav/addressbooks/" Then The CardDAV HTTP status code should be "404" And The CardDAV exception is "Internal Server Error" + + 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/"