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
Carl Schwan
0fe01de26c
feat(OCP): Expose setup manager to OCP
...
It's used by a lot of apps so expose just the two methods that are most
of the time used, to prevent the apps to relly on private APIs.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-26 17:12:02 +01:00
Louis Chmn
7c9c74f4f0
feat(files_sharing): Implement partial mount providers
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
Signed-off-by: Louis Chmn <louis@chmn.me>
2026-01-16 08:32:14 +01:00
Benjamin Gaussorgues
0ff8b35578
Merge pull request #57550 from nextcloud/setup-path-not-found-fallback
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 (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, 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-01-15 16:12:23 +01:00
Robin Appelman
53b160ce9b
fix: add some extra checks for getMountsForPath arguments
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-15 11:31:54 +01:00
Robin Appelman
68cdd1b1ef
fix: fallback to full user setup if we cant find the expected mount root
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 18:04:13 +01:00
Andy Scherzinger
abe5499e14
Merge pull request #57498 from nextcloud/carl/rename-imountproviderargs
...
refactor(files): Rename IMountProviderArgs
2026-01-14 17:50:43 +01:00
Robin Appelman
47530ef95f
feat: add a debug config option to disable authoritative mount optimizations
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 13:03:01 +01:00
Robin Appelman
e5497c7731
fix: protect against infinite loops in setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-14 11:21:27 +01:00
Robin Appelman
467487ecd8
feat: dont reload authoritative mount providers when doing by-path setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-13 16:42:48 +01:00
Carl Schwan
7b05c8f797
refactor(files): Rename IMountProviderArgs
...
It's not an interface so the I-prefix is inadequate.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-12 17:33:52 +01:00
Salvatore Martire
2d22c4f654
fix: update information cached by mount point on rename
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-01-07 17:00:09 +01:00
Salvatore Martire
07eef5eaf4
fix: drop set up partial mounts on setupForUser
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-01-07 17:00:09 +01:00
Salvatore Martire
6e9ba894a2
fix: add $forChildren parameter to IPartialMountProvider
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-29 18:06:12 +01:00
Salvatore Martire
6c19fbcf4d
fix: adjust authoritative setup path caching logic
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-22 15:52:52 +01:00
Salvatore Martire
d14a032220
feat: implement support for authoritative mount providers
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Salvatore Martire
9b519b4679
refactor: simplify code
...
replace array_reduce + array_merge with array_merge(...)
replace conditional assignment with ??=
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Salvatore Martire
f47a586cdd
docs: update comments
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-10 16:05:27 +01:00
Robin Appelman
73d0418425
fix: don't update cached mountpoints if the request doesn't have filesystem access
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-31 18:28:26 +02:00
Côme Chilliet
7127ac4b43
fix: Replace OC_App::loadApp calls by IAppManager
...
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-10 11:40:27 +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
Ferdinand Thiessen
e143921896
feat(IUser): add getQuotaBytes method to get machine readable quota
...
Proper replacement for deprecated `OC_Util::getUserQuota`.
Also we still use this in some cases we can now replace, moreover it
just makes sense to have a machine readable format in the API instead of
only the human readable format which is less precise.
Alings also with `getQuota` of the quota storage, which already returned
the machine readable format.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-22 12:50:38 +02:00
provokateurin
ecfa58d3d7
fix(SetupManager): Include home and root providers when registering mounts
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-20 09:46:53 +02:00
Robin Appelman
b2c01785ae
fix: fix availability wrapper not applying
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-11-26 17:44:58 +01:00
Carl Schwan
77821f8f3e
feat(trashbin): Port files trashbin events to IEventDispatcher/IEventListener
...
oc_hooks is deprecated and will at some point be removed
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-09-23 18:13:21 +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
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
Robin Appelman
1071201052
feat: store the mountpoint of storages in the mount options
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 13:31:35 +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
Joas Schilling
951c330d39
Revert "don't perform an explicit setup when using the file cache"
2024-03-07 14:38:02 +01:00
Robin Appelman
4fba4cd14c
fix: fix user folder init
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-06 17:52:24 +01:00
Robin Appelman
af466a0d3a
fix: ensure user home mounts is registered
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-06 17:52:24 +01:00
Robin Appelman
ac7f3ee985
add a debug option to force a full filesystem setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-02-24 11:55:20 +01:00
Robin Appelman
dec880b285
optimize builtin storage wrappers
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-11-08 15:26:10 +01:00
Robin Appelman
1eb3293e53
setup filesystem wrappers before we mark the root as setup
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-09-12 16:50:29 +02:00
Robin Appelman
64f62f7cfd
Merge pull request #39863 from nextcloud/sharing-mask-wrapper
...
move share permission logic to storage wrapper
2023-09-04 14:05:14 +02:00
Robin Appelman
b6c3507aa0
only determine quota_include_external_storage once for quota wrapper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-18 14:25:28 +02:00
Robin Appelman
e73889a240
cleanup di for share permissions wrapper
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-16 15:25:05 +02:00
Robin Appelman
a031bc4788
more share permission logic to storage wrapper
...
this way we only have to determine the share permissions once
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-08-14 18:17:27 +02: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
Robin Appelman
fb1095f0f6
do onetime user setup before getting any mount from providers
...
this fixes a race condition where wrappers weren't properly applied if when a mount provider creates the storage instance one mountpoint creation instead of lazily
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-22 18:03:38 +01:00
Robin Appelman
91d5f6a826
more filesystem setup performance instrumentation
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2023-02-10 11:11:13 +01: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
Robin Appelman
841a6a084e
delay updating setup providers untill we register the mounts
...
otherwise the fallback to a full setup for a missing cached mount provider will lead to a race condition
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-11-17 15:21:57 +01:00
Robin Appelman
bd91c56539
get quota for user only when needed
...
always apply the wrapper but have the wrapper get the quota lazily only when an operation where quota is applied is performed
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-09-01 19:32:24 +02:00
Robin Appelman
13eef55a92
always triger setup of builtin storage wrappers
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-07-21 16:36:32 +02:00
Jonas
74e9ef0fb1
Fix listening for circle events in SetupManager
...
So far, SetupManager listened for deprecated events that are no longer
triggered. Instead, use the circle events that actually get triggered
when adding or removing a circle or circle member. Also, these events
get triggered on each instance of a globalscale setup.
Fixes : #33210
Signed-off-by: Jonas <jonas@freesources.org>
2022-07-12 13:28:21 +01:00
Vincent Petry
56b1453945
Merge pull request #32768 from nextcloud/fs-setup-onetime-earlier
...
perform onetime setup earlier to ensure wrappers are registered on time
2022-06-10 11:21:54 +02:00
Robin Appelman
5c768f980e
fix mounts mounted at the users home
...
this fixes external storages with '/' as mountpoint
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-06-09 19:21:56 +02:00
Robin Appelman
a937ab03dd
perform onetime setup earlier to ensure wrappers are registered on time
...
this fixes an issue with wrappers like encryption not always being applied to mountpoint that create the storage object directly (such as external storage)
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-06-08 18:49:54 +02:00