Commit graph

649 commits

Author SHA1 Message Date
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
Akhil
e823718383
Remove reminder if max instances exceeded
Signed-off-by: Akhil <akhil@e.email>
2023-02-27 15:56:39 +05:30
Akhil Potukuchi
e354e9266e
Update apps/dav/lib/CalDAV/Reminder/ReminderService.php
Co-authored-by: Christoph Wurst <ChristophWurst@users.noreply.github.com>
Signed-off-by: Akhil Potukuchi <akhil.potukuchi@gmail.com>
2023-02-27 12:55:48 +05:30
Akhil
9f9da964f6
Fix max instances exception for get vevent call
Signed-off-by: Akhil <akhil@e.email>
2023-02-26 21:27:37 +05:30
Daniel
c6c512a19d
Merge pull request #34375 from nextcloud/fix/trashbin-uid
fix(dav) Handle Calendar trashbin UID conflicts by removing the deleted calendar object
2023-02-21 16:32:05 +01:00
Anna Larch
ed70815076 Fix calendar emails to be outlook compatible
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-02-21 14:37:11 +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
Anna Larch
5b6a0affd0 Allow reimporting prev. deleted items by deleting trashbin item
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-02-13 15:00:23 +01:00
rakekniven
421df8d456
l10n: Fixed grammar
Reported at Transifex.

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>


Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2023-02-11 22:09:26 +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
Christoph Wurst
ee05e01cf4
Merge pull request #29010 from mattian/fix/19218/birthday-leap-day
dav: fix birthday calendar event generation for leap days
2023-02-08 08:55:22 +01:00
Côme Chilliet
c4d90f3e81
Removed catch of ValueError as we cannot know if it’s >2038 or <1970
Also fixed numericToString to correctly convert float to int if it fits

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-07 11:23:35 +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
Mattia Narducci
b55c62c6c2 dav: fix birthday calendar event generation for leap days
Fix generation of birthday calendar events for the 29th of February.

A recurring event for the 29th of February in the (default) Gregorian
calendar system would only generate instances in leap years. Fix this
behaviour by generating recurring events for the last day of February,
the 29th on leap years and the 28th otherwise.

Signed-off-by: Mattia Narducci <mattianarducci1@gmail.com>
2023-02-06 19:11:46 +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
Côme Chilliet
dde5c46a3e
Migrate to Symfony Mailer
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-02-02 10:30:06 +01:00
Joas Schilling
1a31ddb56d
Do not reuse query builder objects in DAV account deletion
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-02-01 21:49:34 +01:00
Christoph Wurst
954284f8cd
fix(caldav): Fix wrong Psalm report for nullable calendar data
> Docblock-defined type Sabre\VObject\Component\VCalendar for $vcalendar is never falsy

^ is a lie

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-26 11:24:53 +01:00
Christoph Wurst
83711e9267
Merge pull request #36254 from nextcloud/chore/dav/throw-json-encode-decode
chore(dav): Make json_encode and json_decode throw on error
2023-01-23 12:52:22 +01:00
Christoph Wurst
afd1ddb0ea
chore(dav): Make json_encode and json_decode throw on error
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-19 19:19:22 +01:00
Christoph Wurst
3c9ceffa7c
chore(dav): Remove useless var tag
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-19 19:05:23 +01:00
Anna Larch
a9264b007f fix(dav): catch MaxInstancesExceedeException for recurring events without end date
Ref https://github.com/nextcloud/calendar/issues/4811

Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-01-18 15:40:36 +01:00
Thomas Citharel
62739ecf6c
Handle reminders where calendar name is null
This adds an interface change, but that's not a public API.

We're handling this in the providers and not in ReminderService because
the fallback is translated with the user's language.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-01-18 14:30:43 +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
Joas Schilling
348454cb91
Merge pull request #35876 from bennet0496/patch-mail-header
Adding option to set Auto-Submitted email header
2023-01-04 09:34:14 +01:00
Bennet Becker
5a1cc8de9b
update usages of AutoSubmittedValue to AutoSubmitted::VALUE_
Signed-off-by: Bennet Becker <dev@bennet.cc>
2023-01-03 15:28:43 +01:00
Côme Chilliet
9430899f16
Fix psalm issues related to signature changes from PHP 8.0
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-12-29 12:36:34 +01:00
Bennet Becker
7a9f4fbbbe
Setting Auto-Submitted header for calendar events and new user mail
Signed-off-by: Bennet Becker <bbecker@pks.mpg.de>
2022-12-23 19:26:38 +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
cb0450b5c4
Improve typing on new methods
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-12-05 12:01:12 +01:00
Côme Chilliet
d9151ff35c Get rid of all useless calls to setParsedSubject now that setRichSubject is able to do it
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-11-29 14:36:29 +00:00
Julius Härtl
908b7aa70a
Attempt to fix CalendarImpl tests
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2022-11-09 16:37:34 +01:00
Richard Steinmetz
304b71647f
Fix duplicate event email notifications
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2022-11-04 16:24:57 +01:00
Christoph Wurst
3b084e5fbc
Merge pull request #34893 from nextcloud/fix/move-imip-to-separate-interface
Move iMIP to its own interface
2022-11-03 15:03:42 +01:00
Anna Larch
9dd51601c6 Switch to DisplayNameCache for CardDAV
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-11-03 10:26:34 +01:00
Anna Larch
e5c290bb7f Switch to DisplayNameCache for CalDAV
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-11-03 10:26:34 +01:00
Anna Larch
aebcc3126a Move iMIP to it's own interface
and clean up the code a bit.

Added:
- author

Removed:
- unused imports

Changed:
- moved iMIP handling to new interface
- pointed code to new implementation

Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-11-03 10:07:09 +01:00
Thomas Citharel
6f15873321 Add a background job to prune outdated sync tokens
We remove all outdated sync tokens, based on their auto-incremented ID.

By default we only keep the last 10 000, but this can be configurable.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-27 20:12:13 +00:00
Christoph Wurst
2f4b7c9057
Merge pull request #34415 from nextcloud/fix/caldav-backend-causal-reads
Fix causal reads in CalDAV backend
2022-10-06 10:58:58 +02:00
Christoph Wurst
e6d8da4cdc Fix causal reads in CalDAV backend
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-10-03 20:03:29 +02:00
Thomas Citharel
d084e7656b
Add isDeleted property to OCP\Calendar\ICalendar
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 18:56:02 +02:00
Anna
9c516c2009
Merge pull request #34388 from sylvainmetayer/feat_2464_exclude_contact_from_birthday_calendar
feat(contacts): exclude contact from birthday calendar
2022-10-03 14:15:36 +02:00
blizzz
f055328094
Merge pull request #33608 from nextcloud/perf/improve-getCalendarsForUsers
Remove the loop of calendars when only one is needed
2022-10-03 10:59:25 +02:00
Thomas Citharel
98030e97d3
Add typings to OCP\Calendar\ICalendar and implementation
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-10-03 08:35:42 +02:00
Sylvain
5b8d8271a2 fix: define exclusion key as constant
Signed-off-by: Sylvain <git@sylvain.dev>
2022-10-02 18:30:13 +02:00
Sylvain
e3d50f99c9 feat(contacts): exclude contact from birthday calendar
Signed-off-by: Sylvain <git@sylvain.dev>
2022-10-02 17:55:11 +02:00
Anna Larch
3a8c7b6bf3 Remove the loop of calendars when only one is needed
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-10-01 22:17:40 +02:00
Anna Larch
b044c7586b
Check calendar URI length before creation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-08-26 13:57:43 +02:00
Anna Larch
4ca4b02793 Support iMIP invitations from Mail
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-08-22 22:10:12 +02:00
Joas Schilling
7e11778190
Use user name cache in activity providers
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-08-19 10:48:32 +02:00
luz paz
d4637ef4d8 Fix typos in apps/dav subdirectory
Found via `codespell -q 3 -S l10n -L jus ./apps/dav`

Signed-off-by: luz paz <luzpaz@github.com>
2022-07-26 17:40:10 -04:00
Anna
5671abd168
Merge pull request #33251 from cneukom/feature/birthday-calendar-reminder-settings
Birthday Calendar Reminder Setting
2022-07-26 20:59:33 +02:00
Thomas Citharel
554e2dce48
Don't try to purge objects from the birthday calendar when it doesn't exist
Doesn't matter much as it's been recreated afterwards with (ensureCalendarExists).

Closes #29617

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-07-25 17:56:24 +02:00
blizzz
4ced3a4518
Merge pull request #32869 from nextcloud/dav-no-deleted-user-activities
Avoid calendar & addressbook activities being created on user being deleted
2022-07-23 00:01:30 +02:00
Cédric Neukom
9eb276b20b fix possibly null variables
Signed-off-by: Cédric Neukom <github@webguy.ch>
2022-07-17 18:36:06 +02:00
Cédric Neukom
483549d22a Respect user settings when generating alerts for birthday calendar
Signed-off-by: Cédric Neukom <github@webguy.ch>
2022-07-17 14:51:46 +02:00
Carl Schwan
14a16320ec
Merge pull request #32884 from nextcloud/typing/dav-sharing
Add typing to Sharing Backend
2022-06-22 11:09:06 +02:00
Carl Schwan
3598ec4028 Add typing to Sharing Backend
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-06-22 10:25:17 +02:00
Valdnet
814d9ac74a
Spelling unification
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-06-15 11:01:58 +02:00
Valdnet
5e200f2670
l10n: Spelling unification
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-06-15 11:01:18 +02:00
Valdnet
dd30ab9c7f
l10n: Spelling unification
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-06-15 10:57:05 +02:00
Thomas Citharel
39ef0500d1
Handle the move operation properly between shared calendars
- Introduce a new CalendarObjectMovedEvent typed event dedicated for
  this operation
- Handle the event in the activity backend and add new appropriate activity subjects

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-14 14:40:24 +02:00
Thomas Citharel
4129089f87
Avoid calendar & addressbook activities being created on user being deleted
Addressbooks and Calendar data are destroyed through hook OC_User::pre_deleteUser, which when it reaches the backends sends AddressBookDeletedEvent/CalendarDeletedEvent typed events, which in turns generates activities that aren't deleted until they expire.

This can probably lead to old activities being visible for a new user created with the same uid.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-06-14 11:54:42 +02:00
Vincent Petry
5f8e1b7fb9
Merge pull request #31622 from nextcloud/increase-loglevel-modernize-refresh-webcal
Increase loglevel of Webcal parsing errors and modernize code
2022-06-10 16:31:51 +02:00
Vincent Petry
dcfdcf991f
Merge pull request #32361 from nextcloud/dav-scheduling-default-calendar
Put calendar invites into the user's first available calendar
2022-06-10 16:03:09 +02:00
Vincent Petry
8e61671b82
Merge pull request #32364 from nextcloud/dav-listeners
🧹 Remove all legacy event dispatchers from CalDAV & CardDAV backends
2022-06-10 15:57:35 +02:00
Christoph Wurst
ca45e6a064
Merge pull request #28703 from nextcloud/enhancement/caldav-reminders-logging
Debug log what happens during reminders processing
2022-06-02 14:29:58 +02:00
Christoph Wurst
4e5ed32025
Merge pull request #32471 from nextcloud/fix-wrong-dav-activities
Make sure activities are not created when a deleted calendar object expires
2022-06-01 17:01:58 +02:00
Christoph Wurst
58f7a150ed
Debug log what happens during reminders processing
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-06-01 11:38:02 +02:00
Joas Schilling
2c670f9cf9
Also trim the name
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-05-25 08:06:32 +02:00
Joas Schilling
ba684f5c58
Fix handling events without names in activities
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-05-24 17:04:56 +02:00
Thomas Citharel
424fc1b736
Rename user-agent used by the Webcal Refresh Service
Some services don't like the "crawler" inside the previous user-agent.

Closes https://github.com/nextcloud/calendar/issues/4232

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-20 16:23:40 +02:00
Thomas Citharel
cf8b98bf5f
Make sure activities are not created when a deleted calendar object expires
Closes https://github.com/nextcloud/activity/issues/784

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-18 11:17:27 +02:00
Anna Larch
440f69bd69
Add email validation
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-05-18 07:54:30 +02:00
Thomas Citharel
741c44385f
Increase loglevel of Webcal parsing errors and modernize code
Closes #31612

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:11:58 +02:00
Thomas Citharel
060c8d7c4b
Add some typed properties
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:09:49 +02:00
Thomas Citharel
4bb31c021e
Remove all legacy event dispatchers from CalDAV & CardDAV backends
Move them to proper EventListeners and test them

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-17 15:09:46 +02:00
Carl Schwan
f7be76125f Fix more psalm issues
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-16 11:05:54 +02:00
Thomas Citharel
8d7154318f
Put calendar invites into the user's first available calendar
If there's no default calendar and we can't find anything with URI
'personal', instead of creating a new one, start by using the first
"real personal calendar" available.

If not, then we create the default one.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-05-12 15:28:36 +02:00
Carl Schwan
829490ab7a Cleanup dav
- Remove unused class AppEnabledPlugin
- Add more type hinting when possible

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-05-05 22:03:59 +02:00
Côme Chilliet
5fb9de6248
Migrate last instances of $server::getLogger() from dav
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-05-02 10:52:44 +02:00
Côme Chilliet
e2531f8503
Migrate dav application from ILogger to LoggerInterface
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-05-02 10:52:43 +02:00
Thomas Citharel
5494dd736d
Handle processing reminders for calendar objects with an infinite number
of recurrences

Closes #29896

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-27 17:17:22 +02:00
Côme Chilliet
2049a21348
Fix warning about optional parameter before required one
Fixes this warning:
PHP Deprecated:  Required parameter $logger follows optional parameter $principalPrefix in /var/www/html/apps/dav/lib/CalDAV/CalendarRoot.php on line 37

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-04-12 14:26:24 +02:00
Christoph Wurst
288f07a5a4 Fix CalDAV subscriptions calendarorder column/prop type
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-03-24 17:42:03 +00:00
Christoph Wurst
941e560b5e Fix column/property type of the calendar order
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-03-24 17:42:03 +00:00
Christoph Wurst
4f33b6937b Fix column/property type of the CalDAV deleted_at time stamp
The timestamp is an int, but we treated it as string. With this patch
the property map is enriched with types and settype casts the value if
necessary.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2022-03-24 17:42:03 +00:00
Anna Larch
08510edaa1 Fix moving error for calendar object error because of missing principal uri
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-03-22 00:03:02 +01:00
Daniel Teichmann
73a7ced1fd
Fix #31303: Make reminder notification behaviour selectable.
Signed-off-by: Daniel Teichmann <daniel.teichmann@das-netzwerkteam.de>
2022-03-21 13:02:46 +01:00
Anna Larch
0745fc5012 Move calendar objects between calendars instead of deleting and recreating them
Signed-off-by: Anna Larch <anna@nextcloud.com>
2022-03-16 12:48:50 +01:00
Christopher Ng
0cbb6d7ba9 Various minor updates
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-02 02:15:05 +00:00
Christopher Ng
4eff359441 Calendar export and import
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2022-03-02 01:59:15 +00:00
Thomas Citharel
6f9afa77b3
Consider only reminders with calendar data
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-15 10:15:46 +01:00
Thomas Citharel
f695b3af9a
Remove setting defaultUsernamePath dynamically
Since Sabre 3.0.6 this is no longer possible.

@see https://github.com/sabre-io/dav/pull/582

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-02-14 19:40:31 +01:00
Maximilian Martin
33c698872b delete birthday calendar events permanently
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2022-02-02 09:19:03 -05:00
Christoph Wurst
b005846d1f
Carefully filter out non matching time ranges for CalDAV search
When we search for CalDAV objects in the DB we take the first and last
occurence into account. For recurring events that is when they take
place the very first time and the very last time. Searching in a more
specific time range will still match this condition, because the
recurring event starts before the end of the requested range but ends
after the start of the requested range.

Sabre has filters for this. If we apply them on all seach objects of a
search with a time range, then only the recurring events actually taking
place at the time of the requested time range will be returned.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-13 15:58:31 +01:00
Christoph Wurst
98d4aefe43
Close open cursor in the caldav back-end
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-12-02 14:23:59 +01:00
Christoph Wurst
98b963e8a2
Merge pull request #29661 from nextcloud/enhancement/calendar-search-properties-api
Document and type allowed property names for calendar property searches
2021-11-15 10:02:47 +01:00
Christoph Wurst
603a88f2ee
Fix loading all principal calendars in the dav app calendar provider
If we load all calendar infos of a principal then we get back an array
and not a single calendar info. This was handled incorrectly and an
array of calendar infos were passed to the calendar implementation,
resulting in interesting bugs.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-11 13:31:32 +01:00