Commit Graph

2113 Commits (7b6a650b6e09b07d4b85a4ae84eb64a6c32b217f)

Author SHA1 Message Date
Robin Appelman 76acc3ada7 only triger metadata preload logic when at least one metadata is requested
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 13:01:14 +07:00
Robin Appelman fce1a164a0 don't preload metadata for the sub-childen
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 12:58:46 +07:00
Robin Appelman 30e9f520f3
Merge pull request #39568 from nextcloud/caldav-share-preload
Calendar optimizations
2023-08-14 10:27:35 +07:00
Daniel Kesselberg 378a0f9837 fix: close cursor after reading the invitation
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-08-10 21:45:57 +07:00
Christoph Wurst 42d1568b6b
Merge pull request #39741 from jmcclelland/optimize-cal-query
optimize calendar search query
2023-08-09 18:17:04 +07: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 +07:00
Robin Appelman bbd0deb80a
Merge pull request #39694 from nextcloud/gps
expose gps data via webdav
2023-08-08 14:36:01 +07: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 +07: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 +07:00
Robin Appelman 65c2d13f4c
preload all requested metadata
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-07 13:40:01 +07:00
Joas Schilling 44b4c16a09
Merge pull request #39605 from nextcloud/bugfix/noid/final-events-cleanup
fix!: Final round of moving to IEventDispatcher
2023-08-04 10:39:57 +07:00
tobiasKaminsky b8b4a0e6ce expose gps data via webdav 2023-08-04 10:32:08 +07:00
Max 2124fb9ff2
fix(dav): use quota of destination in s3 chunk upload
Resolves: #39228.
Check the free space on the destination.

Before it was checking the free space on `$storage`
which is the upload storage of the user who triggered the upload.
This led to user quota being applied
even when uploading to a share with unlimited space.

Signed-off-by: Max <max@nextcloud.com>
2023-08-02 10:09:13 +07:00
Joas Schilling 68fc9b48c2
feat!: Migrate AccountManager event to typed event
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-28 14:11:19 +07:00
Joas Schilling dac31ad101
fix!: Remove legacy event dispatching Symfony's GenericEvent from 2FA Manager
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-27 09:57:52 +07:00
Robin Appelman 7c02eedabb
cache calendar objects from calendarQuery
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-26 14:36:39 +07: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 +07:00
Joas Schilling 77bc6c32d8
fix(dispatcher): Move remaining simple cases in apps/ folder to IEventDispatcher
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-25 11:19:26 +07:00
Robin Appelman 6cf3e4b82c
Merge pull request #38930 from nextcloud/chunk-clean-failed
clean failed upload chunks
2023-07-20 19:29:42 +07:00
Matthieu Gallien 906a6612e4 when reading an empty file getting EOF is not an error
will allow uploading empty files via bulk upload

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2023-07-20 13:41:47 +07:00
Joas Schilling 489b4807db
Merge pull request #39304 from nextcloud/bugfix/noid/typed-event-comments-entity
fix(comments): Emit CommentsEntityEvent as typed event
2023-07-19 17:25:57 +07:00
Daniel aa5dcb0952
Merge pull request #38397 from nextcloud/enh/contacts/hide-adressbook-option
enh(contacts): show/hide addressbooks for all
2023-07-18 17:05:12 +07:00
Joas Schilling c3bc575d99
fix(comments): Emit CommentsEntityEvent as typed event
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-18 16:19:01 +07:00
Joas Schilling 8e90cc056b
Merge pull request #39305 from nextcloud/bugfix/noid/sabre-plugin-events
feat(dav): Emit a typed event to deprecate OCA\DAV\Connector\Sabre::addPlugin
2023-07-18 15:30:30 +07: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 +07:00
Daniel Kesselberg 9e50f149a3
fix: check that object store backend supports multi part uploads
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-07-17 14:09:23 +07:00
Anna 49b6541498
Merge branch 'master' into fix/correct-exceptions-for-SAB 2023-07-14 14:08:57 +07: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 +07:00
jld3103 cbe3c578e1
dav: Add OpenAPI spec
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-07-11 16:37:40 +07:00
Joas Schilling e285d72c10
Merge pull request #38561 from nextcloud/feat/noid/allow-to-match-client-versions-with-regex
feat(request): Allow to match the client version with the IRequest::U…
2023-07-11 11:36:54 +07:00
John Molakvoæ 2dfd9ee3c9
Merge pull request #39190 from nextcloud/bugfix/noid/move-dav-app-to-non-deprecated-dispatcher 2023-07-11 08:27:30 +07: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 +07:00
Joas Schilling 308fc8d8ed
fix(dav): Use IRequest constant to match version
The pattern matches since a 10 year old client version

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-11 07:35:50 +07:00
Johannes Merkel bb802956a2 enh(contacts): show/hide addressbooks for all
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-07-10 13:39:15 +07:00
Robin Appelman 95c3b8131a
preload custom properties when propfinding folders
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-07-09 02:55:57 +07:00
Anna 42aabd2d8b
Merge branch 'master' into fix/correct-exceptions-for-SAB 2023-07-07 12:45:31 +07:00
Joas Schilling e1d4b82111
fix(CI): Fix type confusion with Psalm
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-07 10:55:17 +07:00
Joas Schilling 2bf339e2a7
fix(dav): Remove listener for events that never existed anywhere
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-07 10:53:20 +07:00
Joas Schilling 80ee81faa1
fix(dav): Move listener to actually existing event
The legacy event was removed in 4bb31c021e

Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-07 10:53:20 +07: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 +07:00
Arthur Schiwon 5596af2b96
docs(dav): remove outdated comment
The method was added actually to PHP API in 28 and the mentioned check
is not in place anymore.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-07-06 21:57:08 +07:00
Anna Larch 558e386e46 fix(CardDAV): catch right exception when checking for federated app classes
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-07-06 13:07:14 +07:00
Joas Schilling abc8ff38cb
fix: Cleanup unused imports and some type deprecations
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-06 10:37:40 +07:00
Joas Schilling eb09053897
feat(admin_audit): Migrate to non-deprecated IEventDispatcher
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-07-04 12:36:30 +07:00
Johannes Merkel eda3824d91 enh(sab): Add profileUrl to SAB
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-07-03 17:55:18 +07:00
Christoph Wurst f43c24b0b1
Merge pull request #31790 from nextcloud/fix-events-with-old-lastoccurence
Fix creating events with old (< unix time) lastoccurence
2023-06-29 09:42:55 +07:00
Julius Härtl eddb64f8c3
Merge pull request #37969 from nextcloud/poc/noid/systemtags-perf-tag-endpoint 2023-06-28 07:53:35 +07:00
Arthur Schiwon d9487103c9
fix: cannot apply limit+offset on multi-tag-search
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-27 23:06:39 +07: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 +07:00
Thomas Citharel 1e390e1982 style(caldav): improve getDenormalizedData method
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-06-27 11:16:47 +07: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 +07:00
Christoph Wurst 92c18b252c
fix(dav): Catch SAB sync errors during upgrade
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-26 10:52:07 +07:00
Johannes 199b9788e6
Merge pull request #38856 from nextcloud/fix/contacts/3404/put-location-in-proper-place
fix(sab): put location in proper address field
2023-06-22 11:51:33 +07:00
Joas Schilling e9d8dbf53c
Merge pull request #38747 from nextcloud/perf/early-exit-mkcol
perf: skip request without write permission
2023-06-22 09:02:55 +07:00
Arthur Schiwon 00b396a674
refactor: save unnecessary method_exists
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:35:41 +07:00
Arthur Schiwon a0b683477f
fix: use array_unitersect against objects
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:02 +07:00
Arthur Schiwon 27f6f86d75
fix: obey offset and limit for results from favs and circles
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Arthur Schiwon a0f9556f7c
fix: cominbation of small fixes
- possible null return
- parameter name mismatch in implementation
- incomplete unit test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Arthur Schiwon 49db546f78
fix: include invisible tags for admins
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:01 +07:00
Arthur Schiwon 29f59a54b4
fix: search with more than one search tags
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 20:28:00 +07:00
Arthur Schiwon 30028bb9ac
fix: no search when LazyFolder was provided
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:09 +07:00
Arthur Schiwon ddb65be58f
chore: cleanup unused code
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:09 +07:00
Arthur Schiwon be50bd1b0f
fix: ensure searchBySystemTag() is available
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon 783e32a64d
fix: favorites view and universal search against tags
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Arthur Schiwon 58f7fd2370
use efficient tag retrieval on DAV report request
- uses DAV search approach against valid files joined by systemtag selector
- reduced table join for tag/systemtag search
- supports pagination
- no changes to the output formats or similar

Example request body:

<?xml version="1.0"?>
<oc:filter-files xmlns:d="DAV:" xmlns:oc="http://owncloud.org/ns" xmlns:nc="http://nextcloud.org/ns" xmlns:ocs="http://open-collaboration-services.org/ns">
  <d:prop>
    <d:getcontentlength/>
    <d:getcontenttype/>
    <d:getetag/>
    <d:getlastmodified/>
    <d:resourcetype/>
    <nc:face-detections/>
    <nc:file-metadata-size/>
    <nc:has-preview/>
    <nc:realpath/>
    <oc:favorite/>
    <oc:fileid/>
    <oc:permissions/>
    <nc:nbItems/>
  </d:prop>
  <oc:filter-rules>
    <oc:systemtag>32</oc:systemtag>
  </oc:filter-rules>
  <d:limit>
    <d:nresults>50</d:nresults>
    <nc:firstresult>0</nc:firstresult>
  </d:limit>
</oc:filter-files>

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-06-21 18:19:08 +07:00
Robin Appelman 58a4a222d0
clean failed upload chunks
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-06-21 15:32:27 +07:00
Simon L 56c16b306f
Merge pull request #38639 from charno/bugfix/36644-pruneOutdatedSyncTokens-deletes-all-entries
Bugfix/36644 pruneOutdatedSyncTokens deletes all entries
2023-06-20 16:36:28 +07:00
Johannes Merkel 3cb8968808 fix(sab): put location in proper address field
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-06-20 16:18:09 +07:00
Carl Schwan 9725d00329
Cleanup comments code
- Fix various psalm issues
- Add as much typing as possible while preserving stable API

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2023-06-20 10:55:20 +07:00
Daniel Kesselberg debd03f30d perf: skip request without write permission
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-06-19 13:42:13 +07:00
Christoph Wurst 62c41967e8
fix(carddav): Make SystemAddressBook::__construct $groupManager argument nullable
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-12 18:44:25 +07: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 +07: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 +07: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 +07:00
Christoph Wurst a213650b71
fix(caldav): Cast calendar objects id to int when building index
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-06 09:45:39 +07:00
Christoph Wurst 6f3f84e955
fix(caldav): Close DB cursor in reminder index background job
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-06-05 18:47:24 +07: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 +07:00
Joas Schilling ef93bb926c
fix(dav): Fix avatar size in system address book
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-05-26 10:03:58 +07:00
Arthur Schiwon cd5bd11771
Merge pull request #38448 from nextcloud/fix/carddav/no-sab-guest-users
fix(carddav): Don't show system address book cards to guests
2023-05-25 17:26:46 +07:00
Christoph Wurst 9780472a02
Merge pull request #38454 from nextcloud/fix/capitalization-other-tel
fix(carddav): Make system contact phone number RFC compliant
2023-05-25 15:56:08 +07:00
Christoph Wurst e524631ce3
fix(carddav): Don't show system address book cards to guests
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-25 12:26:26 +07:00
greta 50b61c8b7b fix(carddav): Make system contact phone number RFC compliant
Signed-off-by: greta <gretadoci@gmail.com>
2023-05-25 11:10:25 +07:00
Christoph Wurst 5cfbd4c535
fix(carddav): Check enumeration settings for all SAB methods
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-25 09:11:26 +07:00
Johannes 7ec1ceb79a
Merge pull request #38413 from nextcloud/fix/38412/save-avatar-SAB
fix(SAB): Save avatar to SAB
2023-05-23 15:55:26 +07:00
Johannes Merkel 5983ef001d
fix(SAB): Save avatar to SAB
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-05-23 11:15:34 +07:00
Anna Larch 3c93ce9c25
fix(carddav): Check if SERVER variables are set before accessing them
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-23 10:58:29 +07: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 +07:00
Simon L 25dd264965
Merge pull request #37965 from nextcloud/fix/transactional-system-addressbook-sync
fix(dav): Run system address book create-if-not-exists in transaction
2023-05-16 11:33:09 +07:00
Christoph Wurst 5d038a2dc1
fix(carddav): Mark system address book as read-only
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-15 10:27:53 +07:00
Christoph Wurst 2cc672d26b
fix(dav): Run system address book create-if-not-exists in transaction
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-12 14:15:02 +07:00
Christoph Wurst 1381c4c157
feat(users): Store and load a user's manager
Co-Authored-By: hamza221 <hamzamahjoubi221@gmail.com>
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-12 13:56:48 +07:00
Anna Larch 5c2eb732f1 fix(carddav): expose system address book
Signed-off-by: Anna Larch <anna@nextcloud.com>
2023-05-11 18:59:30 +07: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 +07:00
Arthur Schiwon 2d41f0c064
Merge pull request #38067 from nextcloud/fix/noid/sortTags
fix: sort tags by name
2023-05-11 09:54:15 +07:00
Arthur Schiwon e20e18f45f
fix: use interface instead of implementation as type hint
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-10 19:06:29 +07: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 +07:00
Christoph Wurst 1fd8f41e33
Merge pull request #38048 from nextcloud/enh/add-x-nc-scope-property
feat(dav): store scopes for properties and filter locally scoped properties for federated address book sync
2023-05-10 11:05:41 +07:00
Julius Härtl b935725b70
Merge pull request #38100 from tanganellilore/fix_delete_ChunkingV2Plugin 2023-05-10 08:34:25 +07:00
Arthur Schiwon dbfd2f936a
refactor: remove SystemTag logic from Folder into QuerySearchHelper
- adds OC\SystemTag\SystemTagsInFilesDetector where the search logic is
  moved to

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:52 +07:00
Arthur Schiwon 7f3725c962
chore: polish SystemTagsInUseCollection
- DI SystemTagManager
- add some comments and doc
- catch NoUserException
- add return type hints

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:52 +07:00
Arthur Schiwon b07c5dff72
fix: improve naming of new systemtags endpoint to systemtags-assigned
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:51 +07:00
Arthur Schiwon 2489a2d63a
feat: specify media type via url path: systemtags-current/$mediaType
- only the media part of the mime type can be search, but not the full
  mime type. It can be added, should it become necessary.
- thus fixes previously hardcoded selector for image/ types
- also fixes a return type hint
- adds a return type hint

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-09 23:51:51 +07: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 +07: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 +07:00
Côme Chilliet 185fe5378b
Merge pull request #36893 from nextcloud/fix/avoid-file-events-on-null-path
Make sure to never trigger files hooks on a null path
2023-05-09 17:44:14 +07:00
Christopher Ng 4e51f5224c feat(UserMigration)!: 32-bit support
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2023-05-05 17:59:57 +07:00
Lorenzo Tanganelli d920e65dc5 fix error on delete in ChunkingV2Plugin
Signed-off-by: Lorenzo Tanganelli <lorenzo.tanganelli@hotmail.it>
2023-05-05 13:07:58 +07:00
Simon L a1ed1db01b
Merge pull request #31660 from dzatoah/pr/rename-sendEventRemindersToSharedGroupMembers-to-sendEventRemindersToSharedUsers
Rename setting 'sendEventRemindersToSharedGroupMembers' -> 'sendEventRemindersToSharedUsers'.
2023-05-05 08:12:04 +07:00
Côme Chilliet 6034cc6893 Make sure to never trigger files hooks on a null path
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-05-04 17:55:09 +07:00
Christoph Wurst 8c727f2285
feat(carddav): Map user's additional emails into the SAB card
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2023-05-04 15:03:01 +07:00
Arthur Schiwon badee49b4b
fix: sort tags by name
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2023-05-04 13:21:14 +07: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 +07: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 +07:00
Johannes Merkel ab76b086aa
enh(contacts): write profile prop and backend prop to system addressbook
Signed-off-by: Johannes Merkel <mail@johannesgge.de>
2023-05-02 16:31:11 +07:00
John Molakvoæ 20df0019f1
fix(psalm): systemtags
Signed-off-by: John Molakvoæ <skjnldsv@protonmail.com>
2023-04-28 12:23:52 +07: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 +07: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 +07:00
Maximilian Martin c8985944ec fix event move issue
Signed-off-by: Maximilian Martin <maximilian_martin@gmx.de>
2023-04-18 09:45:30 +07:00
Simon L 855e7a2efb
Merge pull request #36774 from nextcloud/bugfix/noid/sabre-nodes
fix: always use proper path on node api when calling the view
2023-04-18 04:11:44 +07: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 +07: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 +07:00
Julius Härtl 160bd75d0a fix: Use proper path when creating node instances
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-04-17 23:46:52 +07: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 +07: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 +07: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 +07: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 +07: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 +07: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 +07:00
jld3103 b153340b62
Add type hints for mappers
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-07 09:49:42 +07: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 +07:00
jld3103 7e58aa1a05
Fix DAV types
Signed-off-by: jld3103 <jld3103yt@gmail.com>
2023-04-05 07:06:50 +07:00
Louis 7ab44b2d28
Merge pull request #37146 from nextcloud/artonge/feat/migrate_metadata_to_value
Migrate metadata JSON column to new value TEXT column
2023-04-04 10:23:54 +07:00
Louis Chemineau 1a6709cf43 Migrate metadata as JSON to value as STRING
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-04-03 14:06:28 +07: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 +07: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 +07:00
Joas Schilling 4b79e75072
Merge pull request #36852 from nextcloud/bugfix/noid/fix-user-status-automation-on-the-day-rules-are-adjusted
fix(user_status): Fix the user status automation on the day availablity rules are adjusted
2023-03-13 15:30:27 +07: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 +07:00
Joas Schilling c3c3dcbcd9
fix(user_status): Fix the user status automation on the day availability rules are adjusted
Signed-off-by: Joas Schilling <coding@schilljs.com>
2023-03-13 11:41:36 +07:00
Thomas Citharel 5c5de0bac1
fix(dav): Handle no next potential toggle in availability detection
Fixes:  min(): Array must contain at least one element at /var/www/nc/nextcloud/apps/dav/lib/BackgroundJob/UserStatusAutomation.php#142
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2023-03-10 12:18:13 +07:00
Arthur Schiwon 315510df84
Merge pull request #27034 from nextcloud/enh/s3-multipart-upload-api
Use MultipartUpload for uploading chunks to s3
2023-03-09 13:55:57 +07:00
Michiel de Jong c0e84cb512 Add SHARE_TYPE_SCIENCEMESH
Signed-off-by: Michiel de Jong <michiel@unhosted.org>
2023-03-08 16:46:55 +07: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 +07: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 +07:00
Julius Härtl d515da502f fix: Use proper path for quota fetching
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 22:46:07 +07:00
Julius Härtl 3287eddbbc fix: Recalculate storage statistics on updating the quota
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-06 22:46:07 +07: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 +07: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 +07: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 +07: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 +07:00
Akhil e823718383
Remove reminder if max instances exceeded
Signed-off-by: Akhil <akhil@e.email>
2023-02-27 15:56:39 +07:00