Commit graph

249 commits

Author SHA1 Message Date
SebastianKrupinski
1a0535aa75 fix: calendar subscription memory exhaustion
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-12-09 12:36:16 -05:00
Carl Schwan
4d47fdaa85 chore: Run rector with new rules for fetch
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:57 +01:00
Richard Steinmetz
40117dced3
Merge pull request #54426 from nextcloud/perf/prevent-fetching-account
perf: prevent fetching a principal's user account if the data is not needed
2025-08-28 16:59:38 +02:00
Richard Steinmetz
5b254ea39a
perf: prevent fetching a principal's user account if the data is not needed
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-28 14:13:29 +02:00
Richard Steinmetz
e8986db7a4
perf(caldav): preload publish statuses for a whole calendar home at once
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-28 14:00:18 +02:00
Richard Steinmetz
b7dc720848
feat: calendar federation
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-27 17:14:15 +02:00
SebastianKrupinski
46e624a089 feat: Calendar Import
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-08-27 08:30:33 -04:00
Richard Steinmetz
1a781d5afa
fix(caldav): public calendars are always read-only
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-20 13:37:47 +02:00
Daniel Kesselberg
0f4b5e6656
Revert "fix(dav): only consider user's principal for unsharing entries"
This reverts commit 023b98c44b.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-07-09 16:06:12 +02:00
Ferdinand Thiessen
5981b7eb51
chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Joas Schilling
5f784d8695
fix(caldav): Use parameter for query to neutralize it in query diffs
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-06-20 16:24:24 +02:00
Richard Steinmetz
3b1947086c
docs(caldav): improve documentation of CalDavBackend::getCalendarsForUserCount
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-04 15:08:45 +02:00
Thomas Citharel
9252e2689b refactor(dav): remove unused CalDAVBackend method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2025-06-01 22:41:33 +02:00
Daniel Kesselberg
023b98c44b
fix(dav): only consider user's principal for unsharing entries
Before: Find all entries in `dav_shares` with `access = 5` for the user's principal, as well as group and circle memberships.

After: Find all entries in `dav_shares` with `access = 5` solely for the user's principal.

Future support for unsharing group or circle principals could be considered as a feature enhancement.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-14 09:03:33 +02:00
Daniel Kesselberg
c05d3fdb2e
fix(caldav): prevent unshare entry creation for owner unsharing
- Introduces a `unshare` method in `CalDavBackend` to handle user unshares.
- Implements check to determine if unshare entry is needed based on group/circle membership.
- Ensures `updateShares` is only used when the calendar owner manages shares.
- Resolves issue where unsharing a calendar as owner created an unshare entry in `oc_dav_shares`.

Related PRs:
- https://github.com/nextcloud/server/pull/43117
- https://github.com/nextcloud/server/pull/47737

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-05-14 09:03:32 +02:00
SebastianKrupinski
a2d4f8d3f1
feat: Calendar Export
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-05-06 11:09:33 +02:00
SebastianKrupinski
1a90998edc fix: do not ignore move command object target uri
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-04-16 17:43:12 -04:00
Daniel Kesselberg
c410e08fec feat: command to list and delete calendar subscriptions
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-03-09 16:08:38 +01:00
Edward Ly
dee1d4fff3
feat(dav)!: migrate OCA calendar object events to OCP
Signed-off-by: Edward Ly <contact@edward.ly>
2025-03-07 08:09:53 -08:00
Edward Ly
dd181f4b2a
feat(dav): add webhook compatibility for calendar object events
Signed-off-by: Edward Ly <contact@edward.ly>
2025-03-07 08:09:53 -08:00
Richard Steinmetz
739ab5cd82
fix: improve oci compatibility when purging calendar invitations
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-11-23 16:55:11 +01:00
Richard Steinmetz
23802949c2
fix: invalid usage of IQueryBuilder::createNamedParameter()
And fix a typo: chunck -> chunk

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-11-23 16:44:20 +01:00
SebastianKrupinski
4740c18f8e fix: (CalDav) Delete invitation when deleting Calendars or Events
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-11-21 09:08:26 -05:00
Côme Chilliet
1580c8612b
chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +02:00
Côme Chilliet
1a4978c4ea
chore: Apply rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-20 17:51:00 +02:00
provokateurin
9836e9b164
chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Joas Schilling
cfed24cb02
Merge pull request #47924 from ldidry/catch-MaxInstancesExceededException
🥅 — Catch MaxInstancesExceededException on calendar events
2024-09-16 15:04:49 +02:00
Luc Didry
615f0b2c0e
fix(dav): catch MaxInstancesExceededException on calendar events
Signed-off-by: Luc Didry <luc@didry.org>
2024-09-16 12:57:22 +02:00
Christoph Wurst
614f9ec0a2
refactor: Use the elvis operator
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2024-09-15 21:01:34 +02:00
Anna Larch
8af7ecb257 chore: adjust code to adhere to coding standard
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-05 21:23:38 +02:00
Daniel Kesselberg
af6de04e9e
style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
Anna Larch
3ff7d64fda fix(caldav): limit property length
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-08-22 12:15:51 +02:00
Richard Steinmetz
b8ec68d212
Merge pull request #46723 from nextcloud/feat/add-delta-sync-to-subscription-calendars
feat(webcal): only update modified and deleted events from webcal calendars
2024-08-14 08:57:03 +02:00
Richard Steinmetz
82615ce868
fix(caldav): allow VJOURNAL if no supported component set is specified
This is mandated by the RFCs.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-08-13 15:26:17 +02:00
Anna Larch
fb94db1cd9 feat(webcal): only update modified and deleted events from webcal calendars
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-08-13 13:05:58 +02:00
SebastianKrupinski
a56d0dbf4b fix(caldav): fixed initial sync and double processing
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-08-01 13:20:47 -04:00
Joas Schilling
eeb6ddb176
fix(db): Deprecate IExpressionBuilder::or() and IExpressionBuilder::and() without parameters
Signed-off-by: Joas Schilling <coding@schilljs.com>
2024-07-19 11:21:16 +02:00
SebastianKrupinski
0f3d05afea fix(caldav): Throw 403 Forbidden Error instead of 500 Internal Server Error
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-07-17 17:42:35 -04: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
Daniel Kesselberg
e210043ee9
feat(caldav): expose calendar subscriptions
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-07 16:03:33 +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
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
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
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
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
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