Commit graph

436 commits

Author SHA1 Message Date
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
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
Christoph Wurst
ca14c02301
Document and type allowed values for calendar property searches
For API users it looked like any properties could be searched. But it
turned out to be a hand picked list of properties that we index and then
use for the search. To prevent application errors where special props
are not found, I suggest we document and type the allowed values.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-11-11 10:57:04 +01:00
Anna Larch
da22791424 Force Calendar Obejct Chnage Path to support public write
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-11-08 16:06:39 +01:00
Anna Larch
bc68108f2a Fix missing calendar path for public write on Calendars
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-11-04 12:52:55 +01:00
Christoph Wurst
2956f1c017
Fix immutable datetime handling in DAV calendar search
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-28 19:45:39 +02:00
John Molakvoæ
8b742ab394
Merge pull request #28997 from nextcloud/fix/set-attendee-as-recipient 2021-10-22 12:07:39 +02:00
Anna Larch
0401d6dc0f
Add create method to extended calendar implementation
Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-15 09:35:29 +02:00
Daniel
abc2472c5d
Merge pull request #29195 from nextcloud/fix/calendar-invitations-default-language
Fix default language detection for calendar emails
2021-10-14 09:24:59 +02:00
Anna Larch
a58d1e6b06
Add Public Calendar Provider
Signed-off-by: Anna Larch <anna@nextcloud.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-14 08:22:24 +02:00
Christoph Wurst
2148c448cc
Fix default language detection for calendar notifications
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-13 20:33:29 +02:00
Christoph Wurst
c6166c0a37
Fix default langauge detection for calendar invite emails
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2021-10-13 11:01:32 +02:00
Daniel Kesselberg
fab887cb7c
Update attendence for external users
For local users it's possible to select their calendar via the principal url and first update their own attendance status.
External users have no calendar event hence the recipient is the organizer.

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2021-10-08 18:12:37 +02:00
kesselb
fa8083ac12
Merge pull request #28692 from nextcloud/enh/send-invitation-to-req-participants
Send attendence links to required and optinal attendees of an event without an RSVP
2021-09-07 16:03:08 +02:00
Anna Larch
56cc01c45c Send Invitation to Attendees with ROLE=REQ-PARTICIPANT
Signed-off-by: Anna Larch <anna@nextcloud.com>
2021-09-03 14:48:46 +02:00