Commit graph

178 commits

Author SHA1 Message Date
Louis Chemineau
987840592e fix(dav): Always respond custom error page on exceptions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-09-05 18:15:51 +00:00
Richard Steinmetz
25f56e75ef
fix(caldav): stricter default calendar checks
Reject calendars that
- are subscriptions
- are not writable
- are shared with a user
- are deleted
- don't support VEVENTs

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2024-07-23 08:50:30 +02:00
SebastianKrupinski
7728bbcf25 fix(caldav): limit vevent size
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-07-10 14:55:52 +00:00
SebastianKrupinski
38f6af0bd6 fix(carddav): limit vcard size
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-07-04 22:18:40 +00:00
SebastianKrupinski
0dbd4aa8b9 fix(dav): add missing database index for dav_shares resourceid, type and access
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>

Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com>

Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>

Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com>

Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com>

Co-authored-by: Richard Steinmetz <richard@steinmetz.cloud>
Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com>

Co-authored-by: Daniel <mail@danielkesselberg.de>
Signed-off-by: Sebastian Krupinski <165827823+SebastianKrupinski@users.noreply.github.com>

Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2024-06-26 19:04:15 +00:00
John Molakvoæ
5d962241ca
Merge pull request #45543 from nextcloud/backport/44664/stable29 2024-06-07 12:17:58 +02:00
Anna Larch
ec94f5499c fix(caldav): automatically delete outdated scheduling objects
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-06-03 11:10:03 +00:00
Hamza Mahjoubi
2abfae81cb fix(dav): Rate limit address book creation
Signed-off-by: Hamza Mahjoubi <hamzamahjoubi221@gmail.com>
2024-05-28 10:09:22 +00:00
Daniel Kesselberg
9faddcd5d8
feat(caldav): expose calendar subscriptions
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-05-08 10:49: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
Côme Chilliet
443b26761d
fix: Migrate WebDAV endpoint check to SetupCheck API
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-03-14 16:20:17 +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
f1c79cd264
Merge pull request #43732 from nextcloud/fix/dav/rate-limit-create-calendar
fix(dav): Rate limit calendar/subscription creation
2024-02-23 13:54:17 +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
Johannes Merkel
631f2b48ea
fix(db): remove redundant index in cards
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2024-02-18 20:51:43 +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
John Molakvoæ
7b6a650b6e
feat: public dav endpoint v2
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2024-01-09 10:56:06 +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
Joas Schilling
2ff3a3c4fb
fix(out-of-office)!: Remove non OCS endpoint
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-12-01 09:46:03 +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
Christoph Wurst
5b7a5474b9
feat(caldav): Create personal event for out-of-office messages
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-11-14 13:57:12 +01:00
Christoph Wurst
7248d9b091
Merge pull request #40615 from nextcloud/enh/automate-calendar-event-user-status
feat(user status): automate user status for events
2023-11-09 19:56:39 +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
Christoph Wurst
ab1a1d688d
feat: Add out-of-office message API
[skipci]

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-09 10:36:11 +01:00
Richard Steinmetz
425e770c04
feat(dav): implement personal absence settings
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-11-07 17:27:10 +01:00
Akhil
439de119c7
add index for classification
Signed-off-by: Akhil <akhil@e.email>
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-10-31 10:41:32 +01:00
Richard Steinmetz
45ed9b10d5
feat(dav): implement personal absence settings backend
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2023-10-29 00:08:44 +02:00
Côme Chilliet
6aa6f26427
Move NeedsSystemAddressBookSync to dav application where it’s registered
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-10-19 11:44:02 +02:00
Joas Schilling
72667a667d
feat(dav): Emit a typed event to deprecate OCA\DAV\Connector\Sabre::addPlugin
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-17 16:06:15 +02:00
Joas Schilling
05aa39d777
Fix event names of 2FA related typed events
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-03 14:25:01 +02:00
Thomas Citharel
13a3ebd4cc
feat(CardDAV): Add Sabre\DAV\IMoveTarget support to OCA\DAV\CardDAV\AddressBook
This allows to just UPDATE the card row instead of deleting it and reinsert it. It's very similar to https://github.com/nextcloud/server/pull/30120 for calendars.

As we need the addressbookid exposed, this introduces OCA\DAV\CardDAV\Card that extends Sabre's.

I chose specifically NOT to auto-inject LoggerInterface in Addressbook like in #30120 because the chain of DI is huge just for ONE simple call and it would break an existing dirty call (OCA\Contacts calling OCA\DAV) of ContactsManager in Contacts: https://github.com/nextcloud/contacts/pull/1722 (in SocialApiService), but this is debatable.

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-05-16 11:38:57 +02:00
Arthur Schiwon
b6c034ac57
Merge pull request #37961 from nextcloud/poc/noid/systemtags-perf
SystemTags endpoint to return tags used by a user with meta data
2023-05-11 10:16:03 +02:00
Arthur Schiwon
6bff6a5667
PoC: SystemTags endpoint to return tags used by a user with meta data
Target case is photos app: when visiting the tags category, all systemtags
of the whole cloud are retrieved. In subequent steps the next tag is
requested until the browser view is filled with tag tiles (i.e. previews
are requested just as well).

With this approach, we incorpoate the dav search and look for user related
tags that are used by them, and already returns the statistics (number of
files tagged with the respective tag) as well as a file id for the purpose
to load the preview. This defaults to the file with the highest id.

Call:
curl -s -u 'user:password' \
  'https://my.nc.srv/remote.php/dav/systemtags-current' \
  -X PROPFIND -H 'Accept: text/plain' \
  -H 'Accept-Language: en-US,en;q=0.5'  -H 'Depth: 1' \
  -H 'Content-Type: text/plain;charset=UTF-8' \
  --data @/home/doe/request-systemtag-props.xml

With request-systemtag-props.xml:
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
        <d:prop xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns">
                <oc:id/>
                <oc:display-name/>
                <oc:user-visible/>
                <oc:user-assignable/>
                <oc:can-assign/>
                <nc:files-assigned/>
                <nc:reference-fileid/>
        </d:prop>
</d:propfind>

Example output:
  …
  <d:response>
    <d:href>/master/remote.php/dav/systemtags/84</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>84</oc:id>
        <oc:display-name>Computer</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>42</nc:files-assigned>
        <nc:reference-fileid>924022</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  <d:response>
    <d:href>/remote.php/dav/systemtags/97</d:href>
    <d:propstat>
      <d:prop>
        <oc:id>97</oc:id>
        <oc:display-name>Bear</oc:display-name>
        <oc:user-visible>true</oc:user-visible>
        <oc:user-assignable>true</oc:user-assignable>
        <oc:can-assign>true</oc:can-assign>
        <nc:files-assigned>1</nc:files-assigned>
        <nc:reference-fileid>923422</nc:reference-fileid>
      </d:prop>
      <d:status>HTTP/1.1 200 OK</d:status>
    </d:propstat>
  </d:response>
  …

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:48 +02:00
Anna Larch
bd80a1b2dd
feat(dav): store scopes for properties and filter locally scoped properties for federated address book sync
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-09 19:17:39 +02:00
Joas Schilling
b91957e3df
fix(dav): Abort requests with 429 instead of waiting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-03 22:43:36 +02:00
Robin Appelman
74ced3d2eb
expose system tags as dav property for files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-04-28 10:46:38 +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
Joas Schilling
cca3b9495c
chore(autoloader): Update autoloaders with composer 2.5.5
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-04-21 15:53:55 +02:00
Anna
ac90fa2f8e
Merge pull request #36800 from rotdrop/feature/dav-macos-quirks
apps/dav: add some OSX specific quirks.
2023-03-13 11:46:19 +01:00
Julius Härtl
e23aa8883e
feat(s3): Use multipart upload for chunked uploading
This allows to stream file chunks directly to S3 during upload.

Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-08 14:00:04 +01:00
Claus-Justus Heine
64e9dcc9c3
apps/dav: add some OSX specific quirks.
Signed-off-by: Claus-Justus Heine <himself@claus-justus-heine.de>
2023-03-07 16:23:30 +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
Christoph Wurst
aee9941fed
chore(autoloaders): Update autoloader files for Composer 2.5.1
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-01-25 10:42:34 +01:00
Julien Veyssier
73f2876d64
rename SabrePublicPluginEvent to BeforeSabrePubliclyLoadedEvent, run build/autoloaderchecker.sh
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2022-12-15 17:37:34 +01:00
Carl Schwan
f244406ebd Update composer autoloader
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-11-22 13:35:17 +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
Joas Schilling
c443ecfbff
Rebuild autoloader
Signed-off-by: Joas Schilling <coding@schilljs.com>
2022-09-20 10:33:26 +02:00
Carl Schwan
9b8ca9ad1f
Move findBinaryFinder and isFunctionEnabled away from OC_Helper
findBinaryFinder is now a service that is still private but with some
minor optimization (remove the hasKey check).

isFunctionEnabled is now in OCP\Util

Both function are still keep but all internal usage in nextcloud/server
were migrated to the new usage, so that we can remove it in 26

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2022-08-23 19:44:04 +02:00
Vincent Petry
a95c19e14b
Add share attributes + prevent download permission
Makes it possible to store download permission

Signed-off-by: Vincent Petry <vincent@nextcloud.com>
2022-07-28 16:53:22 +02:00
Carl Schwan
16b5e6bc7f
Merge pull request #32973 from nextcloud/cleanup/avatar-code
Cleanup avatar related code
2022-07-11 11:56:39 +02:00