Commit graph

626 commits

Author SHA1 Message Date
Cristian Scheid
c311416bc0 feat(file-info): encapsulate logic to get last activity in getLastActivity function
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-03-26 08:06:16 +00:00
Cristian Scheid
1270a9b0db feat(recent-files): add nc:last_activity property to allow sorting by max between upload_time and mtime
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
2026-03-26 08:06:16 +00:00
Benjamin Gaussorgues
48cae1eac2
Merge pull request #58995 from nextcloud/backport/58979/stable32
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
2026-03-18 01:17:34 +01:00
Benjamin Gaussorgues
e0583ebc12
chore(quota): hide available space from error
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-03-17 11:46:30 +01:00
Robin Appelman
2986551744
fix: handle case where we can't get the filesize after open in dav get
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-05 15:08:10 +01:00
Robin Appelman
9598893555 fix: improve logging around automatic cache updated for dav downloads
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 15:40:32 +00:00
Salvatore Martire
78c66c15d6 fix(dav): set user id header in response earlier
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-19 14:28:07 +00:00
Andy Scherzinger
01d405b440
Merge pull request #57518 from nextcloud/backport/57509/stable32
[stable32] Use strict array search
2026-01-18 21:14:50 +01:00
Andy Scherzinger
da76b7a100
Merge pull request #57516 from nextcloud/backport/57510/stable32
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
[stable32] perf(dav): Avoid getting DB Connection inside callback
2026-01-18 18:46:26 +01:00
Côme Chilliet
a82c28b5ca fix: Use strict array search in other shipped apps as well
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-18 18:45:07 +01:00
Robin Appelman
43774eed9f feat: also send x-user-id for dav responses
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-18 17:36:28 +01:00
Carl Schwan
f9fa9fb625 perf(dav): Avoid getting DB Connection inside callback
Fetch it once outside instead and pass it to the callback.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-18 17:35:09 +01:00
Robin Appelman
bc54c5e357 fix: allow moving from of non-resharable to other share if the user has delete permissions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-06 13:24:52 +00:00
Robin Appelman
bc06221dd8 feat: add fileid to exception message when reading a dav file fails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-02 14:31:17 +00:00
Salvatore Martire
5994423e2a style: apply cs-fixer to publicwebdav.php
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-03 15:38:27 +00:00
Salvatore Martire
6d1344779a fix: check instance of storage using helper function
instanceof cannot be used to check the instance of a storage, doing so
breaks the check in certain cases. In this case, enabling the
`files_accesscontrol` app breaks the check.

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-03 15:38:27 +00:00
Salvatore Martire
79e48941e0 fix: isPublicShare =true when share is public
The isPublicShare was set to false in one instance where it should have
been true. Flipping the value to true, would break the functionality for
PROPFIND /public.php/webdav/ which returns properties of files in a
share identified by the username being the share token.

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-03 15:38:27 +00:00
Salvatore Martire
7ede3044bf refactor: extract tree initialization logic
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-03 15:38:27 +00:00
provokateurin
11b09f8d47 fix(QuotaPlugin): Always check the quota before moving
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-02 07:32:25 +00:00
skjnldsv
4a7f5000ef fix(dav): allow multiple link shares token in session
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-10-23 14:11:06 +00:00
Joas Schilling
eba0292af8 fix(live-photo): Allow files-live-photo meta data with edit permissions
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-10-07 18:56:14 +00:00
Louis Chemineau
431f6d7c87 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 14:38:53 +00:00
Ferdinand Thiessen
482690d80b feat(ZipFolderPlugin): always use the parent folder name as archive name
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-10 21:11:47 +00: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
Ferdinand Thiessen
9ba4150a18
fix(dav): ensure moving or copying a file is possible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-02 16:23:47 +02: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
Git'Fellow
995c97acb4
chore(MtimeSanitizer): Print bad values to help debugging
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-08-28 11:44:06 +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
Richard Steinmetz
8dc30e4f65
Merge pull request #54485 from nextcloud/fix/caldav-acl
fix: exclude \Sabre\DAVACL\Plugin from prop find monitoring
2025-08-18 18:05:02 +02:00
Ferdinand Thiessen
cd550d57ef
Merge pull request #54402 from nextcloud/fix/streamer-mtime-zip
fix(Streamer): use localtime for ZIP files
2025-08-18 14:39:37 +02:00
Richard Steinmetz
51f0aa5be2
fix: exclude \Sabre\DAVACL\Plugin from prop find monitoring
Fixes creating events with attendees on the same server.

Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-08-18 13:27:56 +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
4a0a00a5a2 perf(shares): avoid array_merge in loops
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-08-15 10:46:43 +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
Ferdinand Thiessen
ba00416040 refactor(Streamer): inject IDateTimeZone as constructor arg
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-14 17:19:28 +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
Ferdinand Thiessen
32703d0500
fix(ZipFolderPlugin): set mtime of directories in archive
Directories should also have the correct mtime set and not the current
time. For this the `Streamer` class needs to support passing a time
attribute for creating folders, the underlying library already supports
this.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-08-13 10:23:47 +02:00
nextcloud-command
f5a5b005b6 chore: Update minimum supported desktop version
Signed-off-by: GitHub <noreply@github.com>
2025-08-11 00:34:04 +00:00
Robin Appelman
398b106f0c fix: validate written size for s3 multipart uploads
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-05 19:17:58 +02:00
Jyrki Gadinger
45c8664b00 fix: hide guests group from overall principals
Follow-up for #52914 and #53369

Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
2025-07-31 11:24:23 +02:00
provokateurin
5bd626bd40
chore: Fix all method calls with too many arguments
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-22 12:34:49 +02: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
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
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
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
Maxence Lange
58c089e6f4 fix(dav): catch exception on non local account
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-06-25 14:35:02 +02:00