Commit Graph

27400 Commits

Author SHA1 Message Date
Stephen Cuppett 52f7e3d652 fix(encryption): Remove additional check for home mount point
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-16 06:13:36 -04:00
Stephen Cuppett 7aaebddba2 fix(encryption): Resolve IAppConfig lazily to prevent early IDBConnection creation
Injecting IAppConfig as a constructor parameter into Encryption\Manager (and
through it into EncryptionWrapper) caused IDBConnection to be eagerly resolved
during OC::init() on PHP <8.4 (no lazy ghost objects). This happened before
maintenance:install's Sqlite::initialize() wrote dbname to config.php, so the
connection latched onto the default database name ('owncloud') instead of the
configured one ('nextcloud'). All migrations then ran against owncloud.db, and
the subsequent enable_all.php process opened an empty nextcloud.db — crashing
with "no such table: oc_appconfig".

Remove IAppConfig from Manager's constructor and Server.php's factory closure.
Resolve it lazily via Server::get(IAppConfig::class) inside
EncryptionWrapper::wrapStorage(), which is only called after the filesystem is
set up, never during bootstrap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-16 06:13:36 -04:00
Stephen Cuppett 4bea4eadc8 fix(encryption): Inject IAppConfig for encryptHomeStorage value
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-16 06:13:36 -04:00
Stephen Cuppett b523ddb4e7 fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support
Rewrite conditional flow to use early-return guards: skip IDisableEncryptionStorage,
skip the root mount, respect encryptHomeStorage for HomeMountPoints. Uses IAppConfig
for the encryptHomeStorage setting with a legacy string fallback for the upgrade window.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-16 06:13:36 -04:00
Josh 0fc559ef27 docs(templates): refine ITemplateManager docs
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-05-15 22:34:30 -04:00
Josh 3dd62e1e33 docs(templates): fully document ITemplateManager
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-05-15 22:20:55 -04:00
Nextcloud bot 7d0b0d8a83 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-05-16 00:24:00 +00:00
Nextcloud bot 4713a1c6f2 fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-05-15 00:19:29 +00:00
Ferdinand Thiessen 957917035c Merge pull request #60071 from nextcloud/chore/legacy
chore(OC_App): migrate more legacy function and usage
2026-05-14 22:48:24 +02:00
Christoph Wurst 89e3788b77 Merge pull request #60229 from nextcloud/chore-adjust-since-conflcit-resultion
docs: Adjust since for forUpdate & ConflictResolutionMode
2026-05-13 17:37:23 +02:00
Benjamin Gaussorgues 91a4172e35 Merge pull request #60225 from nextcloud/remove-cache-order
perf: remove unneeded sort in getFolderContentsById
2026-05-13 16:49:24 +02:00
Ferdinand Thiessen 1c23feae3d refactor: migrate usage of OC_App to AppManager
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-13 14:01:49 +02:00
Ferdinand Thiessen 872206cbc2 chore(OC_App): move executeRepairSteps and checkAppDependencies to AppManager
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-13 12:32:14 +02:00
Carl Schwan fcb956b5ab Merge pull request #59753 from nextcloud/work/carl/remove-orderById
perf(share): Remove useless order by id
2026-05-13 12:21:48 +02:00
Ferdinand Thiessen e371c5d69a Merge pull request #60066 from nextcloud/fix/type-app-info
fix(appinfo): properly type info parser and app manager for appinfo.xml types
2026-05-13 11:22:58 +02:00
Louis 9abd134264 Merge pull request #60332 from nextcloud/revert-60001-refactor/encryption-wrapper-homemount-support
Revert "fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support"
2026-05-13 09:25:10 +02:00
Daniel Kesselberg ab33da21c6 docs: Adjust since for forUpdate & ConflictResolutionMode
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2026-05-13 00:47:57 +02:00
Ferdinand Thiessen 2b2b9840b8 test(appstore): add test cases for appinfo.xml
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 23:11:24 +02:00
Ferdinand Thiessen 21426974b1 fix(app-info-shipped): add remote as its still available in code base
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +02:00
Ferdinand Thiessen a6a228bd0a fix(InfoParser): properly handle collaboration plugins
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +02:00
Ferdinand Thiessen e3783b88e6 fix(AppManager): properly type AppInfo type based on XSD
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-12 22:52:32 +02:00
Carl Schwan 38d8eb5410 Merge pull request #58806 from nextcloud/carl/utils-cleanup
Multiple cleanups in OCP/Utils and OC_Utils
2026-05-12 20:03:55 +02:00
Carl Schwan e21b7d1121 feat: Add generate session token to CsrfTokenManager
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan c5c3525a6e fix: Allow sanitizeHTML to accept null
Used like this in many places

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan 279bface8e refactor: Delete deprecated code from OC_Util
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan 4caa444f90 refactor(utils): Mark share related methods as deprecated
The underlying OC_Utils methods are already deprecated

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan 32bc6f54d3 refactor: Replace old Utils::callRegister with new API
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Carl Schwan ab424e20e2 refactor: Deprecate url generator utils
Add a new IUrlGenerator::linkToRemote and replace usage of the old API
with the new one.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-05-12 18:24:12 +02:00
Louis 13b6f92c1b Revert "fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support" 2026-05-12 16:01:48 +02:00
There Is No TIme ab082611a7 fix(UserConfig): cast getTypedValue() result to string in getValueBool()
PHP 8.4 made passing non-strings to strtolower() a fatal TypeError.
getTypedValue() can return a non-string under certain conditions, causing
the strtolower() call to throw. The (string) cast guards against this.

Signed-off-by: There Is No TIme <37583483+thereisnotime@users.noreply.github.com>
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-05-12 15:24:11 +02:00
Carl Schwan 4eb8bc8d50 Merge pull request #59928 from nextcloud/carl/ldap-search-one-by-attribute
feat(ldap): Allow to search one user by one of its LDAP attribute
2026-05-12 14:34:15 +02:00
Benjamin Gaussorgues b438b345b5 Merge pull request #60317 from nextcloud/fix/snowflake_server_id_doc
fix(snowflake): fix wrong documentation about serverId
2026-05-12 14:16:31 +02:00
Carl Schwan 3dbefe89fd Merge branch 'master' into work/carl/remove-orderById 2026-05-12 13:59:15 +02:00
Stephen Cuppett e47345ed83 Merge pull request #60001 from cuppett/refactor/encryption-wrapper-homemount-support
fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support
2026-05-12 07:35:45 -04:00
Benjamin Gaussorgues 9e36754429 fix(snowflake): fix wrong documentation about serverId
Maximum value of a server ID is 511 (9 bits) and not 1023.
Also adjust SetupCheck

Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-05-12 10:47:44 +02:00
Stephen Cuppett cf867ea5fb fix(encryption): Resolve IAppConfig lazily to prevent early IDBConnection creation
Injecting IAppConfig as a constructor parameter into Encryption\Manager (and
through it into EncryptionWrapper) caused IDBConnection to be eagerly resolved
during OC::init() on PHP <8.4 (no lazy ghost objects). This happened before
maintenance:install's Sqlite::initialize() wrote dbname to config.php, so the
connection latched onto the default database name ('owncloud') instead of the
configured one ('nextcloud'). All migrations then ran against owncloud.db, and
the subsequent enable_all.php process opened an empty nextcloud.db — crashing
with "no such table: oc_appconfig".

Remove IAppConfig from Manager's constructor and Server.php's factory closure.
Resolve it lazily via Server::get(IAppConfig::class) inside
EncryptionWrapper::wrapStorage(), which is only called after the filesystem is
set up, never during bootstrap.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-12 04:06:40 -04:00
Stephen Cuppett 817bc5b542 fix(encryption): Inject IAppConfig for encryptHomeStorage value
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-12 04:06:40 -04:00
Stephen Cuppett 1b02dceed5 fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support
Rewrite conditional flow to use early-return guards: skip IDisableEncryptionStorage,
skip the root mount, respect encryptHomeStorage for HomeMountPoints. Uses IAppConfig
for the encryptHomeStorage setting with a legacy string fallback for the upgrade window.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-05-12 04:06:40 -04:00
John Molakvoæ ee602dcfe4 fix: adjust wording in S3ConnectionTrait comment
Co-authored-by: Louis <louis@chmn.me>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2026-05-12 09:07:20 +02:00
John Molakvoæ (skjnldsv) c26b1e4b07 fix(s3): add Content-MD5 header for DeleteObjects to fix AWS SDK v3.339.0+ compatibility
AWS SDK PHP v3.339.0+ introduced a breaking change requiring the Content-MD5
header for DeleteObjects operations. This causes 'MissingContentMD5' errors when
using S3-compatible services like MinIO.

Add middleware to automatically calculate and inject the Content-MD5 header on
all DeleteObjects requests. This is applied universally at the S3ConnectionTrait
level, fixing both external storage (AmazonS3) and core ObjectStore (S3) classes.

Fixes: https://github.com/aws/aws-sdk-php/issues/3068
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
2026-05-12 09:07:20 +02:00
Kate ac15544703 Merge pull request #60299 from nextcloud/fix/remove-iservercontainer-from-core-apps
Chore: Remove references to deprecated interface IServerContainer
2026-05-12 07:48:58 +02:00
Nextcloud bot 88b79c6a1b fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2026-05-12 00:20:57 +00:00
Kate 94c25e210d Merge pull request #60262 from nextcloud/ernolf/fix/brotli-detection 2026-05-11 20:34:09 +02:00
Côme Chilliet 9680004b58 chore: Remove almost all uses of deprecated IServerContainer in lib/private
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 16:22:22 +02:00
Côme Chilliet 6664f62a6c fix: Fix debug mode and tests mocking IAppManager
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 14:53:29 +02:00
Côme Chilliet bdfe8ed77e fix: Add proper methods in IAppManager for namespace handling
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 14:53:29 +02:00
Côme Chilliet 7c7b53163a fix: Remove weird tinkering with namespaces and dead code
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-05-11 14:53:29 +02:00
ernolf 04bd872fd2 style(http-client): use explicit bitmask comparison for CURL_VERSION_BROTLI
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2026-05-11 14:06:57 +02:00
Stephan Orbaugh 6cbd538cf4 Merge pull request #60297 from nextcloud/fix/setup/instanceid
fix(Setup): Ensure instanceid is generated during installation
2026-05-11 13:47:39 +02:00
Josh 3c1cf25002 chore(previews): let psalm know about $class typing
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-05-11 13:10:31 +02:00