Commit graph

1169 commits

Author SHA1 Message Date
Carl Schwan
8555f98e32 refactor: Port External\Manager to the query builder
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-16 11:36:12 +02:00
Louis Chemineau
634e8d2587
fix: Dispatch favorite event with an actual path
The `$path` argument was added in https://github.com/nextcloud/server/pull/48612, but was never actually used by the callers. The path was therefore missing in the favorite/unfavorite events, which lead to a broken activity information.

I also added a fallback to handle `addToFavorites` and `removeFromFavorites`, which are part of a public API, and are calling `tagAs` and `untag` without `$path`.

Fix https://github.com/nextcloud/activity/issues/2134

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-09-15 15:04:00 +02:00
Côme Chilliet
bc5e29f9f2
fix(tests): Fix type issues and other problems with encryption tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:18 +02:00
Andy Scherzinger
3f5c2cdd88
Merge pull request #54645 from nextcloud/carl/modernize-custom-property-backend
refactor(CustomPropertiesBackend): Modernize class
2025-09-05 01:06:21 +02:00
Carl Schwan
f60e7b93e7
Merge pull request #54507 from nextcloud/fix/54501/removeListener
fix: propfind query monitor breaking removeListener and removeAllList…
2025-09-03 18:51:03 +02:00
Carl Schwan
b303185126 refactor(CustomPropertiesBackend): Modernize class
- Use query builder
- Add chunking
- Add type hinting where we can
- Use match expression

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-09-03 14:28:26 +02:00
Christoph Wurst
8e1a070bd5
fix(dav): clean up user's addressbook shares on deletion
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-09-01 10:37:08 +02:00
SebastianKrupinski
7e92b157e3 fix: aliases and capitalization of emails
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-08-28 17:40:04 -04: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
Carl Schwan
d0f819ba99
Merge pull request #54409 from nextcloud/comments-db-multiple
perf(comments): Add a way to get comments for multiple objects at the same time
2025-08-27 11:57:24 +02:00
Andy Scherzinger
a9635044e3
Merge pull request #54533 from nextcloud/cal-edit-private-event
fix(caldav): show confidential event if writable
2025-08-27 09:41:57 +02:00
Richard Steinmetz
caf664ea43
fix(carddav): IAddressBook::getKey() should return a string
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-26 13:31:04 +02:00
Salvatore Martire
5d028cfaf8 fix: propfind query monitor breaking removeListener and removeAllListeners
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-21 11:59:36 +02:00
Carl Schwan
94e2af0302 perf(comments): Also cache the comments count
Since we now have an easy way to fetch the comments count.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-21 11:30:56 +02:00
Arusekk
b3c5707a0c
fix(caldav): show confidential event if writable
If a party can edit the calendar/event, just display it instead of
hiding the details and risking overwrites.
This might be considered a change impacting privacy,
but it actually improves semantics.

Relevant test updates included, improving assertion correctness.

I think all the relevant use cases are solved by this.

Closes https://github.com/nextcloud/server/issues/5551
Closes https://github.com/nextcloud/calendar/issues/4044
Closes https://github.com/nextcloud/server/issues/11214

Signed-off-by: Arusekk <floss@arusekk.pl>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-20 13:34:38 +02:00
Richard Steinmetz
fa80a6199d
fix(caldav): encode calendar URLs properly when formatting search results
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-15 14:53:49 +02:00
Salvatore Martire
75d9aaa3b5
Merge pull request #54318 from nextcloud/feat/54115/emitPreloadCollectionEvent
Emits a `preloadCollection` event in the DAV server, so that plugins can listen to it and preload DAV properties for files inside a collection, to avoid the N+1 issue that would follow if loading properties on a per-file basis.
2025-08-15 11:06:48 +02:00
Salvatore Martire
bdcd583045 feat: make use of preloadCollection in core apps
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-15 10:46:43 +02:00
Salvatore Martire
9bbebd6034 feat: emit preloadCollection event in DAV
This allows plugins to preload the content of a Collection to speed-up
subsequent per-node PROPFINDs and reduce database load.

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-15 10:46:43 +02:00
Carl Schwan
46f0c6ebb5 perf(caldav): Cache calendars in CustomPropertiesBackend
We already do that for files, we are now also doing for calendars.
With relatively small amount of calendars, I managed to reduce the
number of DB requests by 35% and from 23 DB requests touching the
oc_properties table to only 3.

Signed-off-by: Carl Schwan <carl.schwan@nextclound.com>
2025-08-15 09:57:58 +02:00
Salvatore Martire
ec176a933a feat(dav): report inefficient DAV plugins in logs
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-13 19:46:18 +02:00
Christoph Wurst
0c4bb5e8c5
fix(dav): calculate permissions based on addressbook principal
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2025-08-06 18:15:43 +02:00
Daniel Kesselberg
13f25c9316 fix(carddav): return correct sync token for non-truncated requests
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-08-06 14:32:25 +02:00
Hamza Mahjoubi
36d9fcbb4d feat(cardav): support result truncation for addressbook federation
Signed-off-by: Hamza Mahjoubi <hamzamahjoubi221@gmail.com>
2025-08-06 14:04:55 +02:00
SebastianKrupinski
49d8e29a18 fix: do not ignore move command object target uri
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2025-08-01 09:36:07 -04:00
John Molakvoæ
2b50d9b2c5
Revert "perf(base): Stop setting up the FS for every basic auth request" 2025-07-11 17:07:44 +02:00
John Molakvoæ
6f0255d82a
Merge pull request #53141 from nextcloud/perf/files/setup-fs-basic-auth-request 2025-07-11 15:25:10 +02:00
Côme Chilliet
956924bdc9
chore: Remove calls to OC_App in bootstrap.php files for tests
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-10 11:40:27 +02:00
provokateurin
689a853dc6
fix(dav): Initialize the FS for the user right after authenticating
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-08 11:38:58 +02:00
Daniel Kesselberg
4dee17868f
test(imip): ensure charset is set for the text/calendar attachment
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-07-06 20:06:44 +02:00
Joas Schilling
d67396f1b3
Merge pull request #53418 from nextcloud/fix/timedjob-execution-time
Fix TimedJob execution time to allow job execution exactly when scheduled
2025-07-03 14:16:56 +02:00
Robin Appelman
aa15f9d16d
chore: run rector
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +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
Salvatore Martire
289b7ab684 test: check that UserStatusAutomation is cleaned up
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-07-01 15:15:53 +02:00
John Molakvoæ
bd00b75b29
Merge pull request #53671 from nextcloud/fix/read-only-share-download 2025-07-01 15:11:06 +02:00
Julius Knorr
82e299401e perf(dav): Preload dav search with tags/favorites
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-06-27 20:42:07 +02:00
Salvatore Martire
8167b07118 feat(files): automatically create directories on upload
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-06-26 15:08:11 +02:00
skjnldsv
9806a9830c feat(files_sharing): allow viewing files with download disabled
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-26 11:47:53 +02:00
Richard Steinmetz
960b3ec0eb refactor(dav): move shared logic to a dedicated example contact service
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-19 23:46:00 +02:00
Richard Steinmetz
4a6909ffef
feat: create example event when a user logs in for the first time
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-16 11:49:20 +02:00
Daniel Kesselberg
1ac85a3298 fix: use correct format for getlastmodified webdav property
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-10 13:15:31 +02:00
skjnldsv
e41e8de0e2 fix(dav): file drop nickname
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-05 09:09:17 +02:00
Richard Steinmetz
696d76f976 fix(caldav): use direct.edit route in event activities
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-01 14:05:36 +02:00
Ferdinand Thiessen
9f8f7759a9
test(dav): adjust test cases for PHPUnit 10
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-28 09:30:21 +02:00
Joas Schilling
76e6ab1dff
test: Migrate remaining DAV tests to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-28 09:25:47 +02:00
Joas Schilling
96a1dd322b
test: Migrate DAV Systemtags tests to PHPUnit 10
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-05-27 18:27:25 +02:00