Ferdinand Thiessen
b81b787bbc
Merge pull request #61530 from nextcloud/fix/rootfolder-sharedstorage-init
...
perf: avoid DIing IRootFolder at every shared storage init
2026-06-23 22:30:22 +02:00
Salvatore Martire
9d6c04169f
Merge pull request #59857 from nextcloud/authoritative-time-accounting-fix
...
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
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
fix: track time spent in recursive markOrRun calls
2026-06-23 18:48:02 +02:00
Salvatore Martire
93a4f887ea
perf: avoid DIing IRootFolder at every shared storage init
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-06-23 11:10:27 +02:00
Salvatore Martire
351d3c6377
Merge pull request #61517 from nextcloud/fix/noserverget-shares
...
fix: stop calling DI container in SharedStorage
2026-06-23 10:39:32 +02:00
Salvatore Martire
b7c97ea269
fix: stop calling DI container in SharedStorage
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-06-22 23:33:46 +02:00
Robin Appelman
6cb5115eb3
Merge pull request #60465 from nextcloud/share-cleanup-mounts
...
fix: update cached mounts when moving share in repair step
2026-06-22 15:52:47 +02:00
Robin Appelman
fdb9d12ee9
Merge pull request #60466 from nextcloud/share-target-repair-expensive
...
fix: properly mark CleanupShareTarget as expensive
2026-06-22 15:51:58 +02:00
Salvatore Martire
53d48d6f29
fix: track time spent in recursive markOrRun calls
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-06-22 13:05:25 +02:00
Joas Schilling
410fdea9e7
fix(migrations): Trigger recently added migrations
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-06-19 09:56:01 +02:00
Robin Appelman
22229f93e7
fix: update cached mounts when moving share in repair step
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-18 21:55:55 +02:00
Robin Appelman
57a80c2c10
fix: properly mark CleanupShareTarget as expensive
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-18 21:55:41 +02:00
Enrique Pérez Arnaud
3616212ba2
feat(files_sharing): store and refresh OCM access tokens for external shares
...
Co-authored-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Micke Nordin <kano@sunet.se>
Signed-off-by: Enrique Pérez Arnaud <enrique@cazalla.net>
2026-06-17 11:01:16 +02:00
Benjamin Gaussorgues
2b7415ef4d
Merge pull request #60960 from nextcloud/carl/querybuilder-magic-number
...
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
Robin Appelman
d47fd8d708
test: mock ocm discovery in external share test
...
saves ~50s while running tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-06-08 15:35:07 +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
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
Carl Schwan
b7ee8e7545
Merge pull request #59813 from nextcloud/fix/noid/fix-owncloud-group-share-rename
...
fix(sharing): set STATUS_ACCEPTED when creating USERGROUP subshare on…
2026-06-02 11:14:13 +02:00
Côme Chilliet
9c92cc1617
chore: Suppress last known impure static properties
...
We will keep these legacy ones for now. We can search for the
ImpureStaticProperty suppression and add special treatement for them in
the frankenphp PR if needed.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:20 +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
Anna Larch
6220ae9175
fix(sharing): restore STATUS_ACCEPTED for OC-migrated group share subshares
...
When an ownCloud-migrated group share (which has no per-user USERGROUP
subshare) is renamed for the first time, DefaultShareProvider::move()
inserted a new USERGROUP row without setting `accepted`. The column
defaulted to 0 (STATUS_PENDING), causing MountProvider to skip the
share on the next login — the shared file disappeared for the recipient.
Fix: set accepted = STATUS_ACCEPTED explicitly on the INSERT in
DefaultShareProvider::move() for the TYPE_GROUP branch.
Secondary fix: SharedMount::moveMount() silently returned true when
updateFileTarget() threw (e.g. group no longer exists on an OC-migrated
instance). Set $result = false in the catch block so View::rename()
propagates the failure instead of silently corrupting VFS state.
An opt-in occ command (sharing:fix-owncloud-group-shares) with --dry-run
support is included to repair existing broken instances. It targets only
TYPE_USERGROUP subshares with accepted=STATUS_PENDING and permissions!=0
(shares that were accepted but broken by the missing column default),
leaving explicitly declined shares (permissions=0) untouched.
AI-Assisted-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-05-26 17:28:39 +02:00
Andy Scherzinger
d6a7065b07
Merge pull request #60542 from nextcloud/share-api-remove-hashed-pw
...
don't put hashed password in share api response
2026-05-20 10:36:32 +02:00
Robin Appelman
aa7e48e5e8
fix: don't put hashed password in share api response
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-19 16:04:39 +02:00
provokateurin
1063769a77
fix(files_sharing): Use UnknownActivityException
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-05-18 07:26:58 +02:00
nextcloud-command
e11e7f1c70
refactor: Apply rector changes
...
Signed-off-by: GitHub <noreply@github.com>
2026-04-29 23:54:19 +02:00
Ferdinand Thiessen
d8e8703796
chore: add missing Override attribute to app code
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-04-28 21:29:28 +02:00
Joas Schilling
aa904b255f
Merge pull request #59378 from nextcloud/carl/non-internal-api
...
chore: Replace MoveableMount usage with IMovableMount
2026-04-27 12:37:56 +02:00
Salvatore Martire
e548d71873
fix: avoid checking share validity during mount updates
...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-04-24 18:17:45 +02:00
Robin Appelman
987a193a56
fix: properly remove mount with moved child-shares
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:45 +02:00
Robin Appelman
f3830d071c
fix: skip owner when updating for added or removed share
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:45 +02:00
Robin Appelman
f42bfebcc0
fix: don't trigger recursive SharesUpdatedListener when share is moved on validate
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:44 +02:00
Robin Appelman
a05a3b9005
fix: only update share for the user who moved the share
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:44 +02:00
Robin Appelman
41e6124dcc
perf: only load a single mount at a time when checking for share conflicts
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:43 +02:00
Robin Appelman
16a422e58d
fix: fix UserHomeSetupListener disabling with nested events
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:42 +02:00
Robin Appelman
cb8fb349d2
fix: don't trigger on-setup share update from inside the share listener
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:42 +02:00
Robin Appelman
1aa347dc76
fix: check share target parent in userfolders mount
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:41 +02:00
Robin Appelman
aedc57afe7
fix: add optional user param to IUserMountCache::removeMount
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:41 +02:00
Robin Appelman
a1b4a6b6b7
fix: log when user is marked as needing share mount refresh
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:40 +02:00
Robin Appelman
940a68649a
test: add test for UserHomeSetupListener
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:40 +02:00
Robin Appelman
f7803905fe
fix: default user_needs_share_refresh to true
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:40 +02:00
Robin Appelman
e7fcb6c7f5
fix: handle share moves
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:38 +02:00
Robin Appelman
7b3457003c
fix: update shares on group delete
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:37 +02:00
Robin Appelman
9853bc880d
fix: improve performance of handling delete shares
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:16:43 +02:00
Robin Appelman
9c399ba4ac
feat: use time-based cutoff for share updating instead of count
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:16:42 +02:00
Robin Appelman
68448a4a42
feat: export getData for public FileInfo interface
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:51 +02:00
Robin Appelman
8de080580b
fix: disable share resolve postpone in tests
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:51 +02:00
Robin Appelman
6f253302ae
feat: postpone receiving share validation after processing a certain number of users
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:49 +02:00
Robin Appelman
c1a56cfb99
chore: move share recipient validation logic to a separate class
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:48 +02:00
Robin Appelman
491fb8d483
fix: only validate mounts for new share
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 14:39:46 +02:00
Carl Schwan
fbf84e6473
chore: Replace MoveableMount usage with IMovableMount
...
The former is private API while the IMovableMount is public.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-04-24 10:14:37 +02:00
nfebe
0ef2caccc6
fix(files_sharing): Drop trailing '?' from public download redirect URL
...
Public share download links now redirect to the public DAV endpoint
cleanly when no additional query parameters are present. Previously the
redirect always appended a trailing '?' to the target URL, which caused
an Internal Server Error for clients that called the legacy download
endpoint without query parameters (e.g. the Thunderbird FileLink
extension). Links shared before this change are resolvable again.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-04-23 05:58:30 +01:00