Commit Graph

332 Commits

Author SHA1 Message Date
Git'Fellow 5dda39a61e refactor(dbal): move to modern calls
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-06-24 10:35:00 +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 728644d647 Merge pull request #59731 from nextcloud/jtr/refactor-share-dry-exp-dat-validation
refactor(share): DRY up expiration date validation and fix dispatchEvent() log message
2026-06-11 11:42:06 +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
Git'Fellow 3bbe0ee570 refactor: use strict operator
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2026-04-30 00:51:29 +02: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
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
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 e7fcb6c7f5 fix: handle share moves
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-04-24 18:17:38 +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
Josh af076d5c05 refactor(share): extract shared expiration date validation
Both `validateExpirationDateInternal()` and `validateExpirationDateLink()` implemented the
same algorithm for:

- skipping validation when no expiration date is allowed
- rejecting past expiration dates
- applying a default expiration date for new shares
- enforcing the maximum allowed expiration date
- running the `verifyExpirationDate` hook

This change keeps the existing behavior but centralizes the logic so future fixes only need to be made in one place.

This commit also fixes a tiny unrelated quoting bug in `dispatchEvent()` that caused garbled error-log output in `dispatchEvent()`.

Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-04-20 09:11:09 -04:00
Joas Schilling 0b2ad9a935 fix(sharing): Don't give a reason when share from disabled user is no longer working
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-04-13 08:50:31 +02:00
Côme Chilliet 8aedcb4a82 Merge pull request #58652 from nextcloud/automated/noid/rector-changes
Apply rector changes
2026-03-05 16:03:50 +01:00
nextcloud-command 663018455e refactor: Apply rector changes
Signed-off-by: GitHub <noreply@github.com>
2026-03-01 14:43:11 +00:00
Carl Schwan 4acb3b5da3 perf: Perform share path validation early
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-26 11:38:59 +01:00
Carl Schwan 0676fba514 perf(sharing): Avoid loading all shares from all users when unsharing
First check which users have a shares and for which providers and then
only load these shares.

Avoid doing at most 5 SQL queries for each users a share was shared with if
there are no shares.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-25 17:14:15 +01:00
nfebe 2d20ee2e4e 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:43:46 +01:00
Carl Schwan c96ece0bcb refactor: Add more typing
- repairs job
- database
- redis

And remove Helpertest which was unused outside of some tests.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2026-02-06 13:55:39 +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 c8989d853c refactor(IShare): Add typing for node
This might also improve a bit the performance.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-27 11:19:33 +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
Salvatore Martire a449af6460 feat: introduce API for partial share providers
Adds support for retrieval of shares by path

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2025-12-30 16:43:09 +01:00
Robin Appelman c614a13d4b Merge pull request #57158 from nextcloud/users-for-share
feat: add api to get users for share
2025-12-30 14:24:10 +01:00
Andy Scherzinger 32327c6285 Merge pull request #56773 from nextcloud/carl/remove-sciencemesh
refactor(share): Remove code related to science mesh integration
2025-12-30 14:18:53 +01:00
Robin Appelman bbabf50984 feat: add api to get users for share
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-12-22 15:34:23 +01:00
Julius Knorr 7d5ffa50ae feat: Allow to block full matches on the display name
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-18 14:04:46 +00:00
Carl Schwan 3183ea79d2 refactor(external-share): Port more code to string as type for the id
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:40:09 +01:00
Carl Schwan 3bdb344224 perf(external-sharing): Port to Entity and SnowflakeId
This removes all the read after write and we don't need to queries all
the time the same share in the same request anymore.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-16 10:40:07 +01:00
Côme Chilliet 3e8502d239 fix(shares): Fix infinite loop when hide_disabled_user_shares is yes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-12-15 17:02:52 +01:00
Julius Knorr a45f4b0cdc fix: Fix setting name inconsistency between backend and frontend
Signed-off-by: Julius Knorr <jus@bitgrid.net>
2025-12-12 13:08:34 +01:00
Carl Schwan 8bbd30693c refactor(share-manager): Make return type more precise
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-04 21:39:25 +01:00
Carl Schwan cc7655136c refactor(share): Remove code related to science mesh integration
The app was not updated for the past 2 years.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-03 14:11:58 +01:00
nfebe 6bccaf778a fix(sharing): Allow public share access for everyone
When a logged-in user accesses a public share link in the same browser,
the system was incorrectly checking if that user's groups were excluded
from creating link shares. This caused share not found errors for users
in excluded groups, even though public shares should be accessible to anyone
with the link.

The group exclusion setting (`shareapi_allow_links_exclude_groups`) is
intended to restrict share creation, not share access. Public shares
are meant to be anonymous and accessible regardless of the viewer identity
or group membership.

We now check the exclusion for the share creator and not the viewer.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-12-02 09:45:18 +01:00
Ferdinand Thiessen 774aad3ab1 feat(Share\IManager): add matchUserId method and update docs
Add missing `matchUserId` method for full-match-autocomplete options
and update docs to make it clearer what each options exactly means.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-26 18:26:37 +02:00
Maxence Lange 66cc7b731a Merge pull request #54408 from nextcloud/feat/noid/preset-on-share-link-expire-date
feat(preset): share link expiration date
2025-08-19 10:24:43 -01:00
Andy Scherzinger c026c7c933 Merge pull request #54419 from nextcloud/share-event-catch
fix: catch and log exception from share events
2025-08-19 07:21:52 +02:00
Maxence Lange 6076b67696 feat(preset): share link expiration date
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-14 16:07:32 -01:00
Robin Appelman dcc6c1956a fix: catch and log exception from share events
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-08-14 11:37:11 +02:00
Maxence Lange cb84ccc57d feat(preset): share password protection
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-08-12 14:37:32 -01:00
Kate 49618b30a7 Merge pull request #53946 from nextcloud/chore/remove-hierarchical-shares 2025-07-29 13:26:03 +02:00
Maxence Lange 51dc9f89b7 Merge pull request #54064 from nextcloud/feat/preset/custom-share-token
feat(preset): add lexicon entry for custom share tokens
2025-07-29 10:11:05 -01:00
provokateurin 746e5917c7 fix(IShare): Add missing getParent and setParent methods
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-29 11:27:04 +02:00
Maxence Lange 3ceffe9f5b feat(preset): add lexicon entry for custom share token
Signed-off-by: Maxence Lange <maxence@artificial-owl.com>
2025-07-29 08:15:08 -01:00
Kate 89d659ca17 Merge pull request #51602 from nextcloud/fix/fix-default-share-folder-for-group-shares 2025-07-29 11:12:58 +02:00
provokateurin 665a38573c fix(IShareProvider): Add missing getChildren method to the interface
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-29 10:26:33 +02:00
provokateurin 5bd626bd40 chore: Fix all method calls with too many arguments
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-22 12:34:49 +02:00
Côme Chilliet 12ceeacb0e fix: Use default share folder of the user on share accept
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-07-08 13:24:37 +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
skjnldsv 9806a9830c feat(files_sharing): allow viewing files with download disabled
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-26 11:47:53 +02:00
provokateurin ae16a28758 perf(Share20): Add interface to query all shares in a folder without filtering by user
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-05-08 15:29:40 +02:00