Commit graph

115 commits

Author SHA1 Message Date
Stephen Cuppett
37a0d6887f fix(encryption): Remove extra try/catch
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-07-04 08:19:10 -04:00
Stephen Cuppett
e818f98196 fix(encryption): No need for default values to be explicitly specified.
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-07-04 08:19:10 -04:00
Stephen Cuppett
ee6f177b43 refactor(encryption): Drop RetypeEncryptionConfigKeys repair step
The IAppConfig API converts stored values to bool on read (getValueBool)
and re-stamps the type on write (setValueBool), so legacy string-typed
encryption config keys migrate lazily without an explicit repair step.
Per PR review feedback, drop the repair step, its test, and the related
AppConfigTypeConflictException fallback in Encryption\Manager::isEnabled
that only existed to bridge the now-unneeded migration window.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-07-04 08:19:10 -04:00
Stephen Cuppett
1b2b4cb660 refactor(encryption): Migrate appconfig keys to typed bool IAppConfig with repair step
Switch all encryption config reads/writes from deprecated string-typed IConfig to
bool-typed IAppConfig (getValueBool/setValueBool). Adds RetypeEncryptionConfigKeys
repair step to retype existing string values to bool on upgrade. Includes lazy
IAppConfig resolution in Manager and AppConfigTypeConflictException fallbacks
throughout for safety during the upgrade window.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Stephen Cuppett <steve@cuppett.com>
2026-07-04 08:19:10 -04:00
Carl Schwan
da0928827a refactor: Expose a public exception when no user is found
And use this new exception everywhere outside of where the old one was
throw.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-30 21:56:10 +02:00
Carl Schwan
b6a23f0268
refactor: Call IStorageFactory::addStorageFactory directly
Remove call to deprecated Filesystem api and allow to reuse instead of
the mounts points between addStorageFactory.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-23 15:49:09 +02:00
Côme Chilliet
1ab09ec753
chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
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
Louis
13b6f92c1b
Revert "fix(encryption): Refactor EncryptionWrapper with HomeMountPoint support" 2026-05-12 16:01:48 +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
Ferdinand Thiessen
e0ba4d71b6
chore: add missing Override attribute to OC
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:27 +02:00
provokateurin
f12cecb684
feat(rector): Enable SafeDeclareStrictTypesRector
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-09 10:59:31 +01:00
Carl Schwan
3979c493f9
refactor: Apply second batch of comments
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:52:51 +01:00
Carl Schwan
65e769a861
refactor: Apply comments
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:46 +01:00
Carl Schwan
7b6078875b
refactor: Run rector on lib/private
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:50:18 +01:00
Carl Schwan
ae73f7aaf5
refactor(setup-manager): Use ISetupManager instead of SetupManager
Keep using the OC API in the mount manager and OC_Utils, but the rest is
now using the public API.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-27 15:19:19 +01:00
Côme Chilliet
94254db001
chore(encryption): Cleanup typing in EncryptAll/DecryptAll
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:18 +02:00
Côme Chilliet
b74c7538ac
fix(encryption): Do not depend upon user in session unless really necessary
Should fix a bunch of stuff when encryption listener is triggered by events from occ commands or background jobs

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-09-09 11:46:17 +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
Côme Chilliet
f4b780bfea
fix(encryption): Pass an IUser and not a string to getUpdate
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-30 10:28:49 +02:00
Côme Chilliet
07f9d8f4c2
fix(encryption): Catch NotFoundException in ShareDeletedEvent listener
Avoids issues when a share is deleted after the node itself is already
 deleted.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-06-26 17:13:43 +02:00
Côme Chilliet
a79b5dea7c fix(encryption): Improve Update class and event listenening
to avoid back&forth between path and Node object

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet
27599ef45d fix(encryption): Fix a PHP error in Encryption Util in specific situations
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
Côme Chilliet
536ccf144c feat(encryption): Migrate from hooks to events
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-05-13 23:37:52 +02:00
provokateurin
9836e9b164
chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
provokateurin
c2fb7a72da
fix(psalm): Fix @throws annotations
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-17 17:18:30 +02:00
Daniel Kesselberg
af6de04e9e
style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
John Molakvoæ
9197676b82
Merge branch 'master' into refactor/OC-Server-getEncryptionFilesHelper
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-06-04 15:47:48 +02:00
John Molakvoæ
57cd95f804
Merge pull request #40133 from summersab/refactor/OC-Server-getEncryptionKeyStorage 2024-06-04 15:46:54 +02:00
John Molakvoæ
deaaa4beb6
chore: adjust conflicting php class name usage
Co-authored-by: Benjamin Gaussorgues <github-fa3ie@altahrim.net>
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-05-30 14:42:36 +02:00
John Molakvoæ
16e331ffb9
Merge branch 'master' into refactor/OC-Server-getEncryptionFilesHelper
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-05-30 14:25:07 +02:00
Andy Scherzinger
dae7c159f7
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +02:00
Côme Chilliet
ec5133b739 fix: Apply new coding standard to all files
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-04-02 14:16:21 +02:00
Andrew Summers
6cc147c20c Refactor OC\Server::getEncryptionKeyStorage
Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
2024-03-15 13:11:42 +01:00
John Molakvoæ
edc35f74c7
Merge pull request #42893 from nextcloud/file-info-key-location 2024-02-23 19:36:25 +01:00
Robin Appelman
edaa436345
add key location to info:file output
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-01 15:32:33 +01:00
Côme Chilliet
c1d67cc614
chore: Fix DI for Encryption\DecryptAll command
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-01-30 16:03:17 +01:00
Robin Appelman
0492e0f1d4
Revert "add key location to info:file output"
This reverts commit 7bf82fc312.
2024-01-17 17:53:37 +01:00
Robin Appelman
7bf82fc312
add key location to info:file output
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-17 17:47:01 +01:00
Joas Schilling
aa5f037af7
chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Robin Appelman
e4f85226c5
extend fix-key-location to handle cases from broken cross-storage moves
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-31 19:46:47 +02:00
Andrew Summers
be4e30917d
Refactor OC\Server::getEncryptionFilesHelper
Signed-off-by: Andrew Summers <18727110+summersab@users.noreply.github.com>
2023-08-29 21:29:13 -05:00
Faraz Samapoor
e7cc7653b8 Refactors "strpos" calls in lib/private to improve code readability.
Signed-off-by: Faraz Samapoor <fsamapoor@gmail.com>
2023-05-15 15:17:19 +03:30
Côme Chilliet
426c0341ff
Use typed version of IConfig::getSystemValue as much as possible
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 12:50:08 +02:00
Côme Chilliet
f5c361cf44
composer run cs:fix
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-01-20 11:45:08 +01:00