Commit graph

1920 commits

Author SHA1 Message Date
Anna Larch
85202d7f4e 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-06-02 09:14:52 +00:00
Robin Appelman
23967fced3 fix: don't put hashed password in share api response
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-05-19 15:15:39 +00:00
Salvatore Martire
88134bcaf5
fix: avoid checking share validity during mount updates
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-04-28 15:49:43 +02:00
Robin Appelman
1a48f760dd
fix: properly remove mount with moved child-shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:42 +02:00
Robin Appelman
b96a1c82a2
fix: skip owner when updating for added or removed share
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:42 +02:00
Robin Appelman
d4ab60cb57
fix: don't trigger recursive SharesUpdatedListener when share is moved on validate
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:41 +02:00
Robin Appelman
23547109f1
fix: only update share for the user who moved the share
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:41 +02:00
Robin Appelman
82ce6f567a
perf: only load a single mount at a time when checking for share conflicts
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:39 +02:00
Robin Appelman
b66abe553c
fix: don't trigger recursive SharesUpdatedListener when share is moved on create
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:39 +02:00
Robin Appelman
a77f8ca38c
fix: fix UserHomeSetupListener disabling with nested events
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:38 +02:00
Robin Appelman
fae8add994
fix: check share target parent in userfolders mount
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:38 +02:00
Robin Appelman
b6230eea7f
feat: improve VerifyMountPointEvent event
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:37 +02:00
Robin Appelman
a467f84bf5
fix: don't trigger on-setup share update from inside the share listener
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:37 +02:00
Robin Appelman
0d717bd0be
fix: add optional user param to IUserMountCache::removeMount
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:36 +02:00
Robin Appelman
dba7902748
fix: log when user is marked as needing share mount refresh
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:36 +02:00
Robin Appelman
86e83b789c
test: add test for UserHomeSetupListener
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:35 +02:00
Robin Appelman
ac3e74f67d
fix: default user_needs_share_refresh to true
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-28 15:49:35 +02:00
Louis
48e3e15c9f
Revert "[stable33] Revert "Stable33 authoritative share""
Signed-off-by: Louis <louis@chmn.me>
2026-04-28 15:49:33 +02:00
Robin Appelman
f558bc30f6
chore: psalm fixes
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-21 18:19:58 +02:00
Robin Appelman
ee70b113a8 fix: redact share token if share has more permissions than the current user
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-21 15:57:29 +00:00
Joas Schilling
937fa52370 fix(sharing): Don't redirect when accepting a share failed
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-30 11:13:09 +00:00
Tobias Kaminsky
1d176c03c3 Revert "[stable33] Stable33 authoritative share" 2026-03-24 16:41:26 +01:00
Robin Appelman
fad6a86cc8 fix: handle share moves
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
e63fe87b5c fix: update shares on group delete
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
92515d1df1 fix: improve performance of handling delete shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
3a804a4e23 feat: use time-based cutoff for share updating instead of count
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
42c6ffa7a9 feat: export getData for public FileInfo interface
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
7c53aff96f fix: disable share resolve postpone in tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
08bec7ef05 feat: postpone receiving share validation after processing a certain number of users
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:36 +01:00
Robin Appelman
e3060179fc chore: move share recipient validation logic to a separate class
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
aa9697cdef fix: only validate mounts for new share
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
d718d68e26 feat: implement authoritative mount provider for share provider
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
563ff9f431 fix: prevent recursion in SharesUpdatedListener
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
7c7d0bd574 fix: remove validate-user-shares-once optimization
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
b4bc48bf91 feat: add event for tranfered shares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
ecbc0d837a fix: adjust SharesUpdatedListener to event change
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
7e16d3fe49 perf: only update shares for users once
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Robin Appelman
ffa6784bba feat: perform share mount validation on share instead of on mount
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-19 18:39:35 +01:00
Salvatore Martire
65d99fc1dc fix(files_sharing): respect config to skip certificate verification
This is important especially for local development, as certificate are

self-signed.

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-03-18 19:15:31 +01:00
Ferdinand Thiessen
480ec68655 fix: use canDownload for permissions on federated shares
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-03-17 21:58:09 +00:00
Joas Schilling
7e832305c9
chore: Fix SPDX header
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-16 09:10:37 +01:00
Joas Schilling
c442c69a78
fix(videoverification): Remove CSP wildcard for video verification
spreed does it via AddContentSecurityPolicyEvent event by now

Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-11 19:01:18 +01:00
nfebe
b601b03084 fix(share): Set expiration time to end of day (23:59:59)
Shares now expire at the end of the selected day instead of the
beginning, allowing access throughout the entire expiration day.

Also return actual stored time in API response instead of hardcoded
00:00:00 to prevent timezone-related display issues in the UI.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-02-24 10:23:09 +00:00
Ferdinand Thiessen
ae4b6ea0b2 fix(files_sharing): make legacy downloadShare endpoint compatible with legacy behavior
This needs to be able to directly download files if specified to only
download a single file and not a folder.
Also it was possible to either pass a files array json encoded or a
single file not encoded at all.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-02-20 18:21:17 +00:00
Robin Appelman
3cb4b2faaf fix: handle circle shares in share target repair
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-11 17:02:25 +00:00
Andy Scherzinger
6c5681213e
Merge pull request #58136 from nextcloud/share-target-repair-non-existing-parent
[stable33] fix: target-repair: handle cases where the parent folder doesn't exist
2026-02-09 16:50:27 +01:00
Robin Appelman
5213e5b06f fix: don't trigger moveShareInOrOutOfShare for reshares
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-08 18:38:40 +00:00
Robin Appelman
b279fc0ed7
fix: target-repair: handle cases where the parent folder doesn't exist
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-06 14:42:42 +01:00
Cristian Scheid
e249b7e4e1 refactor(teams): adjust expected itemType and remove remote group type from member search controller
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-05 22:38:11 +01:00
Cristian Scheid
a1193b127d feat(contacts): support federated users/groups search when adding team members
Signed-off-by: Cristian Scheid <cristianscheid@gmail.com>
2026-02-05 22:38:11 +01:00