Commit graph

566 commits

Author SHA1 Message Date
Robert C. Schaller
823a07bb1d 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-26 08:49:34 +00:00
Anna Larch
2e0eb60177 fix(caldav): add EXDATE and EXRULE to confidential object
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-03-21 13:39:49 +00:00
Patrick Fischer
76560a51b6 Bug fix: Select the correct table based on CALENDAR_TYPE_CALENDAR
Signed-off-by: Patrick Fischer <mail@patrickfischer.ch>
2024-02-23 20:46:07 +00:00
Christoph Wurst
c7ddc5fd54 fix(dav): Rate limit calendar/subscription creation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-22 15:16:09 +01:00
Thomas Citharel
020c2960b8 fix(caldav): only call getTimestamp() on actual DateTime data
For some reason the value of $component['DTSTART'][0] may not be a DateTimeImmutable

Closes #42464

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2024-02-03 14:24:09 +01:00
Joas Schilling
aa24c671dc fix(userstatus): Also set the user status when the user has no status at all
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-25 10:10:41 +00:00
Anna Larch
a3095303d5 fix(userstatus): CALL status should overwrite MEETING status
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-01-25 10:10:41 +00:00
Johannes Merkel
a509c85662
fix(CalDAV): set acls for DeletedCalendarObjectsCollection
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2024-01-18 08:39:24 +01:00
Joas Schilling
ac3f3a0629
fix(dav): Fix user status "Undefined array key 0 at StatusService.php#98"
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-01-15 09:15:25 +01:00
Richard Steinmetz
f38ce5c1d5
fix(dav): allow multiple organizers if possible
This is very hacky! However, we want to allow saving events with multiple
organizers. Those events are not RFC compliant, but sometimes imported from major
external calendar services (e.g. Google). If the current user is not an organizer of
the event we ignore the exception as no scheduling messages will be sent anyway.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-01-02 11:54:08 +01:00
jld3103
4da91f56e4 fix(dav): Hide less than minute diff in calendar notification title
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-12-20 21:22:55 +00:00
Anna Larch
5fd10dc398 fix(userstatus): set user status to 'In a meeting' if calendar is busy
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-12-19 15:47:29 +00:00
Anna Larch
043a2528a4 fix(caldav): don't reuse query builder objects
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-12-11 12:50:21 +00:00
Joas Schilling
f65eba52eb fix(copyright): Fix copyright doc blocks
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 07:20:23 +00:00
Christoph Wurst
00ba78fed0 fix(dav): Prioritize timezone from core/login
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-29 14:12:43 +00:00
Anna Larch
e8481e428a [stable28] enh(userstatus): add OOO automation and remove calendar automation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-11-28 15:44:23 +01:00
Christoph Wurst
777701e7d1 fix(dav): Avoid date diffing if PHP is buggy
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-24 10:30:39 +00:00
Richard Steinmetz
d593206a30
feat(dav): dispatch out-of-office started and ended events
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-23 17:54:10 +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
Louis Chemineau
33ac1c0433 Fix param name after Sabre\CalDAV update
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-11-22 12:43:27 -01:00
Benjamin Gaussorgues
3545a1c613
feat(caldav): Allow advanced search for events/tasks
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-10 09:21:16 +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
Christoph Wurst
91b31bfb15
fix(dav): Reduce CalDAV backend memory footprint
fetchAll inflates memory. Fetching in a loop allows GC to run earlier
and more often.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-02 11:12:34 +01: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
Christoph Wurst
9627176a23
Merge pull request #38610 from fsamapoor/replace_strpos_calls_in_dav_app
Refactors "strpos" calls in /apps/dav
2023-09-17 10:14:20 +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
Robin Appelman
30e9f520f3
Merge pull request #39568 from nextcloud/caldav-share-preload
Calendar optimizations
2023-08-14 10:27:35 +02:00
Christoph Wurst
42d1568b6b
Merge pull request #39741 from jmcclelland/optimize-cal-query
optimize calendar search query
2023-08-09 18:17:04 +02:00
Richard Steinmetz
2ac24d525c
feat(caldav): linkify location in scheduling mails
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-08-09 10:50:35 +02:00
Jamie McClelland
4a98bb9972 ensure outerquery ->where() function doesn't clobber earier ->andWhere()
Signed-off-by: Jamie McClelland <jm@mayfirst.org>
2023-08-07 14:43:23 -04:00
Jamie McClelland
ece685d6f5 optimize calendar search query
see https://github.com/nextcloud/calendar/issues/4758

Signed-off-by: Jamie McClelland <jm@mayfirst.org>
2023-08-07 14:43:23 -04:00
Robin Appelman
7c02eedabb
cache calendar objects from calendarQuery
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-26 14:36:39 +02:00
Robin Appelman
31c483b759
preload shares for calendars when listing calendars
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-26 14:36:37 +02:00
Joas Schilling
e9ac0287f2
Merge pull request #39297 from nextcloud/fix/dav/close-cursor
fix(dav): close cursor when fetching max id
2023-07-12 20:35:54 +02:00
Richard Steinmetz
9206c0f473
fix(dav): close cursor when fetching max id
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-07-11 08:05:34 +02:00
Joas Schilling
f59c74062a
fix(dav): Move DAV app to non deprecated event dispatcher
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-07 10:53:19 +02:00
Faraz Samapoor
bbfe2fb821
Merge branch 'master' into replace_strpos_calls_in_dav_app
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-27 19:07:09 +03:30
Thomas Citharel
1e390e1982 style(caldav): improve getDenormalizedData method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-06-27 11:16:47 +00: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
73fb2997f4 Issue #36644: Fix pruneOutdatedSyncTokens for CalDAV
pruneOutdatedSyncTokens accidentally deletes all entries of the calendarchanges table
instead of leaving $limit elements in the table

Signed-off-by: Christof Arnosti <charno@charno.ch>
2023-06-12 08:35:35 +00:00
Faraz Samapoor
8c64ccae01 Fixes "PossiblyNullArgument" Psalm warnings.
Co-authored-by: Thomas Citharel <tcit@tcit.fr>
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-12 09:46:07 +02:00
Faraz Samapoor
0bae21b1d1 Refactors "strpos" calls in /apps/dav to improve code readability.
Signed-off-by: Faraz Samapoor <f.samapoor@gmail.com>
2023-06-12 09:46:07 +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
Anna
9e53934498
Merge pull request #36118 from nextcloud/fix/caldav/invitation-outlook-compatibilty
Fix calendar emails to be outlook compatible
2023-05-10 12:10:42 +02:00
Daniel Teichmann
56f36b94e5
Rename setting 'sendEventRemindersToSharedGroupMembers' to 'sendEventRemindersToSharedUsers'.
Signed-off-by: Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
2023-05-04 13:05:00 +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
Maximilian Martin
c8985944ec fix event move issue
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2023-04-18 09:45:30 +02:00