Commit graph

283 commits

Author SHA1 Message Date
Daniel Kesselberg
e210043ee9
feat(caldav): expose calendar subscriptions
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-07 16:03:33 +02:00
SebastianKrupinski
2088b492bf fix(caldav): Fixed phpUnit to use userSession instead of userId and userManager
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-05-02 11:50:27 -04:00
Daniel
c0d21b4443
Merge pull request #44511 from nextcloud/perf/noid/skip-tree-lookup-for-non-calendar-requests
perf(dav): skip non-calendar requests in webcal caching plugin
2024-04-03 07:44:33 +02:00
Côme Chilliet
ec5133b739 fix: Apply new coding standard to all files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Daniel Kesselberg
4bdb473aae
perf(dav): skip non-calendar requests in webcal caching plugin
The webcal caching plugin is active when the X-NC-CalDAV-Webcal-Caching header is there.

findPrincipalByUrl sends a request for /remote.php/dav/principals/users/admin/ using the caldavService which sets the header by default.[^1]

As X-NC-CalDAV-Webcal-Caching only impacts calendar requests, we can skip non-calendar requests.

[^1]: b3670f1805/src/services/caldavService.js (L43)

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-03-27 20:04:23 +01:00
Robert C. Schaller
fa6e6131ee fix(dav): wrong comparison method between two events
Old comparison implementation compares each element of the array against each other with no respect for the associated array label, which leads to wrongful removals because one value is accidentally present in a completely different label. New comparison works 'by-label' individually.

Partly fixes #41084 because changes between 'SEQUENCE' not present, 'SEQUENCE:0' and 'SEQUENCE:1' were not detected in the old implementation and thus no email update sent.

Co-authored-by: Christoph Wurst <ChristophWurst@users.noreply.github.com>
Signed-off-by: Robert C. Schaller <gtbc_robert.schaller@rsxc.de>
2024-03-25 13:18:58 +01:00
Christoph Wurst
3dea99f42b
fix(dav): Add retention time to sync token cleanup
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-03-21 18:37:21 +01:00
Christoph Wurst
d4ac4b81e1
Merge pull request #44130 from nextcloud/fix/dav/occ-fix-caldav-sync-tokens
fix(dav): Add occ command to fix missing caldav sync tokens
2024-03-14 14:05:27 +01:00
Christoph Wurst
f40f962c2e
fix(dav): Add occ command to fix missing caldav sync tokens
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-03-12 12:44:00 +01:00
Christoph Wurst
1e8238b9e4
test(dav): Add unit test for no calendars/subscription limit
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-03-12 12:41:15 +01:00
Christoph Wurst
dc7f2baf26 fix(dav): Rate limit calendar/subscription creation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-23 08:52:59 +01:00
Anna Larch
dce69154ba enh(sharing): enable unsharing for sharees for DAV shares (addressbooks and calendars)
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-02-15 18:01:12 +01:00
Joas Schilling
d086b6c81d
fix(tests): Make PHP 8.1.2 with Datetime Diff Bug pass the notifier test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-26 16:16:37 +01:00
Joas Schilling
e981619c01
fix(dav): Fix user status "Undefined array key 0 at StatusService.php#98"
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-10 09:18:08 +01:00
John Molakvoæ
11096e2060
fix(dav): undeclared $cache property
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-12-21 14:23:52 +01:00
Anna Larch
4c6eff975f fix(userstatus): set user status to 'In a meeting' if calendar is busy
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-12-19 14:59:00 +01:00
Christoph Wurst
8b38d49437
fix(dav): Prioritize timezone from core/login
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 12:17:30 +01:00
Anna Larch
f19645adab enh(userstatus): add OOO automation and remove calendar automation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-11-28 10:28:06 +01:00
Richard Steinmetz
8191295f66
feat(dav): dispatch out-of-office started and ended events
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-23 17:18:49 +01:00
Joas Schilling
aa5f037af7
chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Côme Chilliet
546c024f6c
Fix dynamic property in CalDav tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-11-13 12:40:44 +01:00
Anna Larch
f14a4f8fd7 feat(user status): automate user status for events
and automatically set a user status to free or busy depending on their calendar
transparency, event status and availability settings

Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-11-09 16:20:19 +01:00
Anna Larch
a75173a9a2 fix(scheduling): don't send iMIP emails to rooms / resources
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-11-06 21:01:18 +01:00
Joas Schilling
3a265cee30
fix(3rdparty): Don't use indirect dependency "Safe/" for functions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-10-23 15:25:14 +02:00
Richard Steinmetz
ace08819f9
fix(dav): expand recurrences when searching
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-09-21 23:28:35 +02:00
Côme Chilliet
4b8ef84440
Remove last at matcher call in dav application tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-09-14 15:01:26 +02:00
Daniel Kesselberg
457f4a530e fix(caldav): add webroot to objectid for activities
A calendar uri includes the webroot: example.com/cloud/remote.php/dav/calendars/alice/personal/
The calendar app uses base64(calendar uri) as identifier for calendar objects.

Without this patch the links from activity app to calendar app don't work for installations in a subdirectory.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-09-13 20:33:23 +02:00
hamza221
823908b017 Enable caldav push notifications by default
Signed-off-by: hamza221 <hamzamahjoubi221@gmail.com>
2023-09-12 13:58:40 +02:00
Anna Larch
7eee1de65b fix(CalDAV): check birthday calendar owner
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-09-06 16:57:02 +02:00
Côme Chilliet
8857599656
DateRangeError in PHP>=8.3 is not a ValueError anymore
Fixing 32bit CI on PHP>=8.3

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-08-14 16:28:28 +02:00
Thomas Citharel
3886b00a33 Fix creating events with old (< unix time) lastoccurence
Closes #20804

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-06-27 11:16:47 +00:00
Christof Arnosti
5ad24991d7 Issue #36644: Test cases
Signed-off-by: Christof Arnosti <charno@charno.ch>
2023-06-05 20:40:34 +02:00
Christoph Wurst
4033154302
fixup! fix(caldav): Ignore invalid events for reminder generation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-31 13:08:30 +02:00
Christoph Wurst
b7e7d80173
fix(caldav): Ignore invalid events for reminder generation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-31 09:49:04 +02:00
Ferdinand Thiessen
62c4ae78df Feature: Provide access to app generated calendars through CalDAV
This adds CalDAV support for app generated calendars,
which are registered to the nextcloud core.
This is done by adding a dav plugin which wraps
all ICalendarProviders into a Sabre plugin (inspired by the deck app).

Add unit test for AppCalendar wrapper plugin and calendar object implementation.

Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
2023-04-25 18:11:49 +02:00
Simon L
0e5fcb49d4
Merge pull request #36661 from onny/event-update-mail-subject
Invitation mail: Change subject if event got updated
2023-03-16 12:26:12 +01:00
blizzz
e08fa78224
Merge pull request #36594 from nextcloud/fix-handling-of-invitations
fix(caldav): Correctly handle calendar recreation for invitations when the current calendar is in the trashbin
2023-03-02 11:54:51 +01:00
Jonas Heinrich
944efa388a Invitation mail: Change subject if event got updated
Signed-off-by: Jonas Heinrich <heinrich@synyx.de>
2023-02-20 13:53:53 +01:00
Christoph Wurst
b5f7afd0fb
fix(caldav): Fix reminder timezone drift for all-day events
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-02-09 15:19:00 +01:00
Thomas Citharel
4fd58aa45c
fix(caldav): Correctly handle calendar recreation for invitations when the current calendar is in the trashbin
Follow-up to #32361, see https://github.com/nextcloud/calendar/issues/4098 for details

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-02-09 14:43:27 +01:00
Côme Chilliet
476d5dceb2
Skip tests that cannot succeed on 32bits
For some reason a timestamp in the past also triggers the PHP error
 about not being able to represent it as an int, so skipping that test
 on 32bits.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:34 +01:00
Côme Chilliet
d315bce300
Improve behavior with dates on 32bits and fix tests or skip them
We do not support events after 2038 on 32bits but still behave better
 when date range start/end is after 2038.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:32 +01:00
Anna Larch
38e9cb6a05 Use recurrence instance to build iMip email
instead of the main VEVENT of a repeating event

Fixes part of https://github.com/nextcloud/calendar/issues/3919

Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-02-02 16:25:59 +01:00
Christoph Wurst
898d2923cc
chore(dav): Add void return type to test methods
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-20 08:38:43 +01:00
Côme Chilliet
95520bc467
Merge pull request #36026 from nextcloud/fix/remove-at-matcher-in-dav
Get rid of deprecated at matcher in dav application tests
2023-01-10 10:18:50 +01:00
Côme Chilliet
574c6770d1
Get rid of deprecated at matcher in dav application tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-05 18:28:07 +01:00
Anna Larch
d58ecdcfad Hook into sabre event lifecycle for iMip Messages
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-01-05 11:55:26 +01:00
Anna Larch
05f2dc68fc [WIP] Add logging to Scheduling Plugin
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-01-04 16:58:00 +01:00
Côme Chilliet
cbbb0712db
Merge pull request #34807 from nextcloud/fix/compute-notification-parsed-subject
Compute notification parsed subject from rich subject when possible
2022-12-19 10:46:39 +01:00
Côme Chilliet
e553cd1bb9
Fix comments and dav tests with Notifications and Activity changes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-12-19 09:57:32 +01:00