Commit graph

17085 commits

Author SHA1 Message Date
Ferdinand Thiessen
2a5fc73ca9
fix: resolve PHP deprecation of imagedestroy
> Prior to PHP 8.0.0, imagedestroy() freed any memory associated with the image resource.
> As of 8.0.0, the GD extension uses objects instead of resources, and objects cannot be explicitly closed.

With PHP 8.5 this is deprecated and causes a deprecation warning!

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-11 00:59:15 +02:00
Benjamin Gaussorgues
2b7415ef4d
Merge pull request #60960 from nextcloud/carl/querybuilder-magic-number
Some checks are pending
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
refactor: Use new IQueryBuilder::MAX_IN_PARAMETERS
2026-06-10 23:09:30 +02:00
Stephan Orbaugh
1cf3e362b2
Merge pull request #40407 from haslersn/revert-pr-12573
Revert "Do not do redirect handling when loggin out"
2026-06-10 17:33:10 +02:00
Louis
250635a9a8
Merge pull request #61150 from nextcloud/carl/speedup-tests
Speedup tests execution
2026-06-10 17:23:13 +02:00
Cristian Scheid
3592f83218
Merge pull request #60844 from nextcloud/fix/noid/files-join-ext-cache-select-fields
feat(file-search): add property to SearchQuery and check select fields to decide wheter to join extended cache
2026-06-10 16:26:55 +02:00
Carl Schwan
0fee41df7c
perf: Test chunking with a lower amount of entries
Use a lower array_chunk values when running the code in the tests for
the comment manager.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-10 11:49:29 +02:00
Sebastian Hasler
8325e6981b
revert: "Do not do redirect handling when loggin out"
This reverts commit 60e5a5eca4.
That commit was only required due to "executionContext" which has
since been removed. See: https://github.com/nextcloud/server/pull/16310

Signed-off-by: Sebastian Hasler <sebastian.hasler@stuvus.uni-stuttgart.de>
2026-06-09 17:49:00 +02:00
Stephan Orbaugh
ef87e2e564
Merge pull request #58676 from nextcloud/jail-wrapper-null-paths
fix: don't return cache entries with null paths
2026-06-09 17:25:34 +02:00
Stephan Orbaugh
52d322aac7
Merge pull request #58608 from nextcloud/chunked-write-error-logging
fix: improve logging around failed chunked object store uploads
2026-06-09 17:25:19 +02:00
Louis
9028d13c85
Merge pull request #61100 from nextcloud/fix/fix-dist-css-support
fix: Correctly detect appid for dist css files
2026-06-09 17:12:18 +02:00
Stephan Orbaugh
51075dcdbe
Merge pull request #59901 from nextcloud/delay-storage-cache
perf: delay loading storage info in Cache untill needed
2026-06-09 16:24:33 +02:00
Stephan Orbaugh
0ea5449683
Merge pull request #58335 from nextcloud/lazy-share-recipient-displayname
feat: delay fetching the display name of a share recipient untill we need it
2026-06-09 16:23:56 +02:00
Stephan Orbaugh
9fe944199b
Merge pull request #60709 from nextcloud/test-speedup
Speedup share tests
2026-06-09 16:23:41 +02:00
Anna
d45d1d6bff
Merge pull request #60735 from nextcloud/fix/noid/crypto-decrypt-fallback-valueerror
fix(security): don't propagate ValueError from Crypto::decrypt() fallback
2026-06-09 15:14:44 +02:00
Côme Chilliet
71db0ccbe5
fix(psalm): Use end instead of array_last because psalm does not find the polyfill
I’m not sure why psalm cannot see we have a polyfill for array_last.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-09 14:59:52 +02:00
Côme Chilliet
4c8beed831
fix: Correctly detect appid for dist css files
Follow-up of ab551c4c8a

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-09 12:07:08 +02:00
Robin Appelman
6ca3556173 feat: delay fetching the display name of a share recipient untill we need it
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-09 12:01:40 +02:00
Joas Schilling
4700c8546d
Merge pull request #59905 from nextcloud/jtr/chore-drop-registerProvider-IPreview
Some checks are pending
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
refactor(preview): remove deprecated `PreviewManager::registerProvider` API
2026-06-09 11:51:53 +02:00
Louis
22ed3c3d15
Merge pull request #60916 from adduxa/fix/previews/ffprobe-hangs
fix(previews): ffprobe hangs
2026-06-09 11:37:17 +02:00
Carl Schwan
d6f7805ae7 refactor: Improve log message
Co-authored-by: Josh <josh.t.richards@gmail.com>
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2026-06-09 10:45:48 +02:00
Robin Appelman
ccb1d9afa7 fix: improve logging around failed chunked object store uploads
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-09 10:45:48 +02:00
Robin Appelman
76ce9556ce fix: don't return cache entries with null paths
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-09 10:45:18 +02:00
Robin Appelman
17a7a95553 perf: delay loading storage info in Cache untill needed
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-09 10:42:20 +02:00
Joas Schilling
b1e77f4294
fix(comments): Use capped memory cache for comments
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-06-09 07:17:59 +02:00
Andy Scherzinger
d3229157ba
Merge pull request #61071 from nextcloud/test-db-cleanup
test: cleanup users before userbackend test
2026-06-08 18:01:29 +02:00
Ferdinand Thiessen
6e44f30652
fix(comments): load comments styles when the comments app is loaded
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-08 16:51:56 +02:00
Robin Appelman
48dfc2be3a chore: psalm fix
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-08 15:40:03 +02:00
Robin Appelman
a5ba481653 feat: allow unregistering group backends
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-08 15:35:07 +02:00
Stephan Orbaugh
8ce1c9ae33
Merge pull request #61055 from nextcloud/fix/navigation
fix(NavigationManager): resolve entries only when needed
2026-06-08 14:37:34 +02:00
Stephan Orbaugh
cc48ec4420
Merge pull request #58541 from nextcloud/carl/frankenphp
feat: frankenphp
2026-06-08 14:18:33 +02:00
Stephan Orbaugh
d3b8521ee3
Merge pull request #60453 from nextcloud/jtr/fix-dav-put-bookkeeping-consistency
fix(dav): finalize upload metadata before post-write hooks
2026-06-08 14:16:51 +02:00
Ferdinand Thiessen
1b4243f5a3
fix(NavigationManager): resolve entries only when needed
The `init` method previously contained two different logics:
1. It set up the internal state of default apps and app order
2. It resolved the app navigation entries

The 1. is needed before `add` can be called, so it was always called by
the `add` method, but this also resolved all appinfo.xml entries on the
first `add` call even if never used.
The 2. is only needed when the navigations are actually fetched.

This splits the logic into two functions:
- `init` for the bare initialization
- `resolveAppNavigationEntries` for resolving the entries when
  requesting to output them.

This should give a small performance improvement for API calls and fixes
a problem when navigations are added before all apps are registered.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-07 16:54:21 +02:00
Andrey Dyakov
136b88180b fix(previews): ffprobe hangs
Signed-off-by: Andrey Dyakov <adduxa@gmail.com>
2026-06-05 16:06:16 +02:00
Carl Schwan
3750945cb8
fix(psalm): Fix psalm issues related to moving files
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-05 11:03:16 +02:00
Carl Schwan
774420a188
fix(filesystem): reset static members during frankenphp invokations
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-05 11:03:05 +02:00
Côme Chilliet
f994955dd1
fix: cleanup some of the static vars
We’re gonna need a psalm rule

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-05 10:23:50 +02:00
Côme Chilliet
94102ac464
fix: Change back base.php to have the same behavior as before
Isolated OC in its own file instead so that index.php can do finer init.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-05 10:23:50 +02:00
Carl Schwan
6fc03681bd
feat: enabled frankenphp worker mode
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-05 10:23:50 +02:00
Côme Chilliet
d4c8781e82
Merge pull request #60481 from nextcloud/jtr/legacy-getTheme
Some checks are pending
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
refactor(legacy): simplify getTheme and clarify legacy theme docs
2026-06-04 15:57:52 +02:00
El Mehdi Abenhazou
e8c101fac8 fix(TaskProcessing): restrict allowed_classes in Manager cache deserialization
The availableTaskTypes cache stores serialized arrays containing
ShapeDescriptor objects, ShapeEnumValue objects, and EShapeType enum
values. The unserialize() call did not restrict which classes could
be instantiated.

Restrict deserialization to the three known types:
- OCP\TaskProcessing\ShapeDescriptor
- OCP\TaskProcessing\ShapeEnumValue
- OCP\TaskProcessing\EShapeType

This prevents PHP Object Injection if an attacker gains write access
to the distributed cache backend.

Signed-off-by: El Mehdi Abenhazou <mehdiananas007@gmail.com>
2026-06-04 10:49:23 +02:00
XananasX7
d0cce3da70 fix(TaskProcessing): add allowed_classes to unserialize() in Manager cache
The availableTaskTypes cache stores serialized arrays containing
ShapeDescriptor objects, ShapeEnumValue objects, and EShapeType enum
values. The unserialize() call did not restrict which classes could
be instantiated.

Restrict deserialization to the three known types:
- OCP\TaskProcessing\ShapeDescriptor
- OCP\TaskProcessing\ShapeEnumValue
- OCP\TaskProcessing\EShapeType

This prevents PHP Object Injection if an attacker gains write access
to the distributed cache backend (e.g., a Redis instance without
authentication or with weak ACLs), which is a known real-world attack
vector in shared hosting and container environments.
2026-06-04 10:34:12 +02:00
Daphne Muller
faa78c8a6b
Merge pull request #60167 from nextcloud/enh/noid/allow-http-progressive-stream-response
Some checks are pending
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (master, main, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, guests_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, main, 8.4, main, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / changes (push) Waiting to run
Psalm static code analysis / static-code-analysis (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-security (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ocp (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-ncu (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-strict (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis-summary (push) Blocked by required conditions
failing tests not related according to Julien
2026-06-03 16:24:48 +02:00
Tobias Kaminsky
3279c40632
Merge pull request #60953 from nextcloud/carl/IInstanceFactory
chore: Remove unused and long deprecated Remote components
2026-06-03 14:50:19 +02:00
Julien Veyssier
04dc699a29
feat(guzzle): allow overriding the default curl handler when creating a new client
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-06-03 14:13:37 +02:00
Carl Schwan
994565fec7
refactor: Use new IQueryBuilder::MAX_IN_PARAMETERS
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-03 13:45:29 +02:00
Carl Schwan
8b56c4c93d
chore: Remove unused and long deprecated Remote components
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-03 10:36:41 +02:00
Ferdinand Thiessen
0abaf60352 fix: make sure the core app is loaded
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-02 22:51:05 +02:00
Ferdinand Thiessen
b27e4956d1 refactor(NavigationManager): move navigation definitions into apps
The manager itself does not need to know what hardcoded-things an app provides,
instead the apps itself should handle this.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-06-02 22:51:05 +02:00
Ferdinand Thiessen
ce3b3b7689
Merge pull request #60787 from nextcloud/jtr/fix-storage-dav-client-proxyexclude
fix(Storage): use `proxyexclude` parameter in DAV client
2026-06-02 18:02:04 +02:00
Benjamin Gaussorgues
a8428f883d
Merge pull request #59002 from nextcloud/fix/remove-static-vars
Remove usage of static vars or properties
2026-06-02 11:28:20 +02:00