Commit graph

248 commits

Author SHA1 Message Date
nfebe
8725129312 fix(sharing): Allow reasonable control 4 'Hide download' on fed shares
When creating public links from federated shares, users should be able to set
the 'Hide download' option independently as long as they are more restrictive
than the original share permissions.

Previously, the `checkInheritedAttributes` method was ignoring user preferences
and always overriding the hideDownload setting based solely on inherited
permissions, preventing users from disabling downloads even when the parent
share allowed them.

This fix implements some sort of inheritance logic:
- Users can only be MORE restrictive than parent shares, never LESS restrictive
- If parent hides downloads -> child MUST hide downloads (enforced)
- If parent allows downloads -> child can CHOOSE to hide or allow downloads
- If parent forbids downloads entirely -> child cannot enable downloads

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-11-28 13:42:45 +01:00
Côme Chilliet
cf398cff76 chore: Improve wording in debug log
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
2025-11-25 10:47:03 +00:00
Côme Chilliet
8aba726ee9 fix(files_sharing): Allow deleting a share of a missing file
This can happen in various scenarios, we should allow the user to delete
 the share in this situation.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-25 10:47:03 +00:00
nfebe
033b54934b fix(files_sharing): Only send password on change
The password param should never be sent if the intention is not

remove it or update it.

This commit adapts the frontend and backend to this rule to avoid weird bugs

especially around updating new shares.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-30 13:44:37 +01:00
nfebe
b4b9b7dbca refactor(ShareApiController): Streamline share providers & add error logging
1. Consolidated the repetitive provider code into a clean loop
2. Added exception handling to log unexpected errors

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-10-01 16:26:11 +00:00
provokateurin
efbb3316d9 fix(files_sharing): Also hide own reshares in shared with me section
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-08-18 10:40:41 +00:00
nfebe
dea8324912 feat(files_sharing): Toggle display for trusted server shares
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-08-01 12:18:36 +01:00
Maxence Lange
ba6d74b6de fix(share): assume download enabled on federated share
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-05-29 14:52:00 +02:00
Ferdinand Thiessen
2f7e0dc09b revert: do not unify hide-download and prevent-download permissions
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-27 14:26:16 +02:00
John Molakvoæ
3f528a2726 fix(files_sharing): adjust rate limit share creation to 20 over 10 minutes
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2025-04-15 08:58:17 +00:00
skjnldsv
aec6eeb5b8 fix(files_sharing): rate limit share creation 10 times per 10 minutes
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-15 08:58:17 +00:00
skjnldsv
f81ef274dd fix(files_sharing): fix share creation error handling
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-09 15:22:32 +00:00
nfebe
ba2a1ec72f refactor: Remove some deprecated containers and exceptions
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-02-06 12:55:10 +00:00
Ferdinand Thiessen
8fc1b6f1cd fix(sharing): Ensure download restrictions are not dropped
When a user receives a share with share-permissions but also with
download restrictions (hide download or the modern download permission attribute),
then re-shares of that share must always also include those restrictions.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-02-04 15:06:11 +00:00
Ferdinand Thiessen
2926fe270a fix(files_sharing): Respect permissions passed when creating link shares
Given:
User creates a link or email share with permissions=4 (create only = file drop).

Problem:
Currently the permissions are automatically extended to permissions = 5
(READ + CREATE). Work around was to create the share and directly update
it.

Solution:
Respect what the user is requesting, create a file drop share.

Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-28 17:26:28 +00:00
Ferdinand Thiessen
57949b2e22 fix: Ensure label is always a string
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-26 20:00:33 +00:00
Anna
d9a7124592
Merge pull request #49898 from nextcloud/fix/noid/no-emails-for-user-shares
fix(sharing): send share emails for internal users too
2025-01-16 18:50:30 +01:00
Christopher Ng
0eb39d7b9c feat(sharing): Respect admin custom tokens setting
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2025-01-15 15:50:43 -08:00
Christopher Ng
beffb26266 feat(sharing): Fetch a unique generated token
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2025-01-15 15:49:19 -08:00
Christopher Ng
f92875cf6a feat(sharing): Allow updating share token
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2025-01-15 15:49:19 -08:00
Anna Larch
236e084fbb fix(sharing): send share emails for internal users too
Signed-off-by: Anna Larch <anna@nextcloud.com>
2025-01-13 14:13:02 +01:00
provokateurin
beea8854ca
feat(files_sharing): Allow users with share permission to manage shares on IShareOwnerlessMount
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-11-25 10:27:31 +01:00
provokateurin
b658ab7a86
fix(files_sharing): Remove duplicate link/email edit share logic
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-11-25 10:27:31 +01:00
Côme Chilliet
f44a192613
fix(files_sharing): Fix error messages from password policy
Exceptions thrown from password_policy may bubble up in share creation
 or update when a password is used. Their message is meant to be shown
 to the user. This always the case for HintException so we catch that
 instead of the subclass GenericShareException.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-11-19 09:40:26 +01:00
provokateurin
77114fb327
fix(OpenAPI): Adjust array syntax to avoid ambiguities
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-11-05 09:58:11 +01:00
provokateurin
aacb3ddc1e
fix(files_sharing): Cleanup error messages
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-28 09:07:41 +01:00
fenn-cs
227b8462d8 refactor(ShareApiController): Check for null and empty strings with empty()
Proactive measure to avoid warnings in higher php versions as well possible type errors

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2024-10-24 18:37:42 +01:00
fenn-cs
e2d2a17810 fix(ShareAPI): Send mails for mail shares by default
It looks like, the frontend it needs to provide the `sendMail` param
for the backend to decide wether mails would be sent.

Our UI does not have that at the moment so it should default to sending
emails always for mail shares.

Not exactly sure how this was handled earlier but this is a good starting point.

Resolves : https://github.com/nextcloud/server/issues/48012

Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
2024-10-24 14:41:07 +01:00
provokateurin
381077028a
refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00
Côme Chilliet
1580c8612b
chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +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
skjnldsv
bb37954abb fix(files_sharing): adjust permissions from custom edit and delete check methods
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-09-11 13:17:42 +02:00
Marcel Klehr
c43353d6e6 fix: Display 'Leave share' instead of 'Delete'
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-09-06 13:50:52 +02:00
Ferdinand Thiessen
1d16bc47ff
fix(files_sharing): Handle download permission the same way for public and internal shares
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-09-06 03:38:47 +02:00
Anna Larch
8af7ecb257 chore: adjust code to adhere to coding standard
Signed-off-by: Anna Larch <anna@nextcloud.com>
2024-09-05 21:23:38 +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
Git'Fellow
6002566d92
fix(share): Rename Circle to Team
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-08-06 14:48:07 +02:00
Maxence Lange
6c4b0dba77 fix(inherited-shares): ignore top root folder
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2024-08-05 13:40:53 -01:00
provokateurin
9128a23af1
refactor(files_sharing): Replace security annotations with respective attributes
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-07-27 22:42:51 +02:00
skjnldsv
43ca07809d fix(files_sharing): file request creation permissions and link copy display
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-18 19:47:11 +02:00
skjnldsv
bb730a1ee3 fix(files_sharing): remove undesirable translations from ShareAPIController
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-16 08:33:53 +02:00
skjnldsv
df42a10e56 chore(files_sharing): lint & refactor fixes
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
9b84831c8d fix(files_sharing): adjust IAttributes API and files_versions
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
967b3848e0 fix(files_sharing): phpunit & openapi fixes
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
bc5839e5b5 chore(files_sharing): cleanup NewFileRequestDialog vue
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
30f9ef414e fix: psalm, cs, autoloader and lint
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
5ce4bb368f chore(files_sharing): refactor share password mail
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
75ca4944c9 feat(files_sharing): allow mixed values in share attributes and allow storing email arrays
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
c253112cf7 chore(files_sharing): refactor mail handling
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00
skjnldsv
d388370c3b feat(files_sharing): implement IShareProviderWithNotification and refactor sendMailNotification
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2024-07-12 20:14:30 +02:00