SebastianKrupinski
65e4d46e2c
chore(caldav): remove obsolete function
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-07-04 03:39:49 -04:00
John Molakvoæ
3e06931408
fix(dav): WebcalCaching-Plugin lint
...
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-06-27 09:46:40 +02:00
Vivida
58cf14da87
feat(dav): add regex to match Gnome and KDE calendar user-agents
...
Signed-off-by: Vivida <57828684+Vivida1@users.noreply.github.com>
2024-06-27 09:46:40 +02:00
SebastianKrupinski
d7eb509b26
fix(caldav): when message is a reply compare the message sender not the recipient
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-06-25 16:43:51 -04:00
Joas Schilling
8130968a35
feat(notifications): Migrate server INotifiers to new exceptions
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-06-25 11:56:24 +02:00
Richard Steinmetz
df28c04a8f
fix(caldav): encode calendar URIs with umlauts for activities
...
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-06-20 10:56:27 +02:00
Richard Steinmetz
3a975d0a89
fix(caldav): event links in shared calendar notifications
...
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-06-11 20:08:57 +02:00
Anna Larch
ad78f7e48e
fix(caldav): automatically delete outdated scheduling objects
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-05-31 13:14:01 +02:00
Daniel Kesselberg
b769dc4304
feat(caldav): order the calendar objects by start date for search
...
Sorting the events by the start date leads to more predictable results for the search API consumers.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-28 19:56:36 +02:00
Daniel Kesselberg
4718a7e4e0
fix(caldav): event search with limit and timerange
...
Event recurrences are evaluated at runtime because the database only knows the first and last occurrence.
Given, a user created 8 events with a yearly reoccurrence and two for events tomorrow.
The upcoming event widget asks the CalDAV backend for 7 events within the next 14 days.
If limit 7 is applied to the SQL query, we find the 7 events with a yearly reoccurrence and discard the events after evaluating the reoccurrence rules because they are not due within the next 14 days and end up with an empty result even if there are two events to show.
The workaround for search requests with a limit and time range is asking for more row than requested and retrying if we have not reached the limit.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-28 19:56:36 +02:00
Andy Scherzinger
9d4b944098
chore: Add SPDX header
...
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-27 20:11:22 +02:00
Jérôme Herbinet
1ffdebd20d
fix(dav): Replaces "Time:" with "Date and time:" in calendar invite email
...
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2024-05-23 15:37:11 +02:00
Anna Larch
de49514fb4
fix(caldav): loop through all events for busy events
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-05-14 14:32:58 +02:00
Daniel Kesselberg
e210043ee9
feat(caldav): expose calendar subscriptions
...
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-07 16:03:33 +02:00
Anna Larch
e43811d395
fix(userstatus): catch unique constrain violation on revert
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-05-06 17:08:25 +02:00
SebastianKrupinski
51d338b9cc
fix(caldav): Fixed formatting to comply with php-cs
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-05-03 09:01:07 -04:00
SebastianKrupinski
d25039ec1a
fix(caldav): Test if user object is not null and trim senderName
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-05-01 19:51:45 -04:00
SebastianKrupinski
f44b73e2db
fix(caldav): Use userSession instead of userId
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-04-30 10:30:12 -04:00
Anna Larch
a28f264783
fix(CalDAV): remove UNKNOWN from room / resource consideration
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-04-19 21:22:17 +02:00
Côme Chilliet
ab6afe0111
fix: Fix new psalm errors from update
...
Not sure about the SimpleContainer modification, let’s see what CI says
about that.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-08 11:29:09 +02: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
Anna Larch
a96f8f7fee
fix(caldav): add EXDATE and EXRULE to confidential object
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-03-21 10:01:33 +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
a2fcf50f43
fix(dav): Fix atomic calendar/subscription updates
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-02-29 09:42:51 +01:00
Richard Steinmetz
53ef6c5f71
feat(dav): update a principal's schedule-default-calendar-URL
...
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-02-28 14:51:10 +01:00
John Molakvoæ
9eece36235
Merge pull request #39553 from zero0cool0/fix/caldavbackend_getChangesForCalendar
2024-02-23 21:35:43 +01:00
John Molakvoæ
54e6ad6e63
Merge pull request #39750 from nextcloud/Jerome-Herbinet-to-dos-wording-change
2024-02-23 21:30:06 +01:00
Jérôme Herbinet
678c003546
"Taks" to fit calendar wording
...
Signed-off-by: Jérôme Herbinet <33763786+Jerome-Herbinet@users.noreply.github.com>
2024-02-23 17:05:56 +01:00
Patrick Fischer
0f16153e4a
Bug fix: Select the correct table based on CALENDAR_TYPE_CALENDAR
...
Signed-off-by: Patrick Fischer <mail@patrickfischer.ch>
2024-02-23 16:18:01 +01:00
Hamid Dehnavi
7bf31df0bc
Refactors "substr" calls to improve code readability
...
Signed-off-by: Hamid Dehnavi <hamid.dev.pro@gmail.com>
2024-02-23 15:54:10 +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
Thomas Citharel
2bfe67c8ab
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-02 10:46:48 +01:00
Joas Schilling
71add5561a
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 11:05:48 +01:00
Anna Larch
e1b957e17b
fix(userstatus): CALL status should overwrite MEETING status
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-01-24 18:23:21 +01:00
Christoph Wurst
d9d222d18a
Merge pull request #42850 from nextcloud/fix/caldav/update-acls-deletedcalendarobjectscollection
...
fix(CalDAV): set acls for DeletedCalendarObjectsCollection
2024-01-18 10:42:14 +01:00
Johannes Merkel
b454156f57
fix(CalDAV): set acls for DeletedCalendarObjectsCollection
...
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2024-01-17 17:08:31 +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
jld3103
08b43021e1
fix(dav): Hide less than minute diff in calendar notification title
...
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-12-20 18:29:57 +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
Richard Steinmetz
06aba2a5c8
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>
2023-12-17 17:46:00 +01:00
Anna Larch
3475d52741
fix(caldav): don't reuse query builder objects
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-12-11 11:32:32 +01:00
Joas Schilling
73c0f596f7
fix(copyright): Fix copyright doc blocks
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-11-30 11:53:47 +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
Christoph Wurst
096537eae5
fix(dav): Avoid date diffing if PHP is buggy
...
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-24 09:45:56 +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
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
Simon L
66ab45b8a0
Merge pull request #36528 from nextcloud/dav-backend-transations
...
CalDAV/CardDAV: put every method from backends that does multiple DB calls in transactions
2023-04-18 00:55:29 +02:00
Simon L
6afda50590
Merge pull request #37645 from nextcloud/fix/improve-imip-emails
...
fix(dav): Parse sender PARTSTAT in REPLYs
2023-04-17 23:49:16 +02:00
Thomas Citharel
ff3b69b21d
refactor(dav): Since we're in a transaction, use QB properly when incrementing synctoken
...
Now that we're in a transaction, we can reuse the sync token's previous value without trouble, and rewrite the increment UPDATE query without dirty direct SQL.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-17 16:08:44 +00:00
Thomas Citharel
c9a3129cb4
fix(CalDAV/CardDAV): put every method from Cal/CardDAV backends that does multiple DB calls in transactions
...
In a lot of methods we're doing read-after-writes (for instance calling
updateProperties after touching calendar objects).
There's also a lot of deleting methods that do stuff sequentially which
could cause trouble.
This should avoid this kind of issues.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-04-17 16:08:44 +00:00
Simon L
e63720b714
Merge pull request #36217 from nextcloud/handle-push-notification-with-no-calendar-name
...
Handle reminders where calendar name is null
2023-04-17 15:43:21 +02:00
Simon L
bdb09abd1a
Merge pull request #36845 from Murena-SAS/reminder-iterator-exception
...
Fix max instances exception in get vevent call
2023-04-17 15:26:11 +02:00
Anna Larch
fd85c86cde
fix(dav): Parse sender PARTSTAT in REPLYs
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-04-13 18:55:08 +02:00
Arthur Schiwon
784b2bd703
Merge pull request #37626 from nextcloud/fix/compare-imip-email-values
...
fix(dav): add string comparison for diff
2023-04-11 19:36:13 +02:00
jld3103
b153340b62
Add type hints for mappers
...
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-07 09:49:42 +02:00
Anna Larch
1811a0e8f9
fix(dav): add string comparison for diff
...
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-04-07 00:28:42 +02:00
jld3103
7e58aa1a05
Fix DAV types
...
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-05 07:06:50 +02:00
jld3103
02f9c3a06f
Use implementations instead of interfaces for accessing private methods
...
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-03-30 12:33:46 +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
Richard Steinmetz
7a020b1d1a
Merge pull request #36935 from nextcloud/fix/noid/imip-plugin-null-hardening
...
fix(caldav): harden null handling of iMip scheduling method
2023-03-02 12:28:17 +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
Richard Steinmetz
a35b960c7a
fix(caldav): harden null handling of iMip scheduling method
...
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-03-02 09:42:10 +00:00
Richard Steinmetz
2c0d89e56a
fix(caldav): convert iMip recipient name to a string
...
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-02-28 15:20:58 +01:00