Commit Graph

1600 Commits (0bd839f5ae04f76216cd83e6fb7f23fce42236e1)

Author SHA1 Message Date
Ferdinand Thiessen bcd26323c1
fix: Also validate parent path in `verifyPath`
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-28 20:24:03 +07:00
Ferdinand Thiessen ef3bd03849
fix: Allow read-only filename validation to allow reading files
Needed to read files with the "Windows compatibility" feature.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-28 20:23:54 +07:00
Ferdinand Thiessen 183fcef39b
fix: Renaming does not need update but delete permissions
Renaming is basically copy + delete (a move), so no need to update permissions.
Especially if the node is in a invalid directory the node should be moveable but not editable.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-28 20:23:50 +07:00
Louis Chemineau e5a8f996bd chore: Apply php:cs recommendations
Signed-off-by: Louis Chemineau <louis@chmn.me>

[skip ci]
2024-08-28 14:54:14 +07:00
Robin Appelman 693ee5ea0f fix: hint storage id in more places
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +07:00
Robin Appelman 82d7eaf80a feat: implement distributing partitioned queries over multiple shards
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-28 14:54:14 +07:00
Ferdinand Thiessen 1e49c83556 fix: `FilenameValidator::isForbidden` should only check forbidden files
And not forbidden basenames as this is used for different purposes.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-08-22 08:51:58 +07:00
Robin Appelman fff198657f fix: use mountpoint from storage to find the encryption keys
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 14:24:43 +07:00
Robin Appelman ece54cf956 feat: store the mountpoint of storages in the mount options
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-20 14:24:43 +07:00
Andy Scherzinger 609fa7d5db
Merge pull request #47044 from nextcloud/fix/accept-several-mounts-in-encryption
fix(encryption): Fix mountpoint check to accept if several are found
2024-08-07 20:58:19 +07:00
Côme Chilliet 277c2cf5d1
fix(encryption): Fix mountpoint check to accept if several are found
There is no strong requirement to have only one mount for a given
 storage id. Also the error in this case would be misleading.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-08-05 17:34:25 +07:00
Robin Appelman eb4fb994cf
fix: ensure array returned from getMountsForFileId is continious
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-08-02 17:22:33 +07:00
Christopher Ng 572361f498 fix(files): Fix incorrect keys by reindexing
Signed-off-by: Christopher Ng <chrng8@gmail.com>
2024-08-01 09:14:44 +07:00
Ferdinand Thiessen 21f558b12b
Merge pull request #46379 from nextcloud/fix/folder-search-owner
fix: `OCP\Files\Node\Folder::search` was not setting the owner
2024-07-30 13:04:15 +07:00
withbest dd08f93202 chore: fix some comments
Signed-off-by: withbest <seekseat@outlook.com>
2024-07-29 14:43:27 +07:00
Dennis Verspuij 181aecad4c fix: Release directory iterator and thereby its potential directory lock prior to deleting a directory, to avoid e.g. "Text file busy" error with VirtualBox shared folder storage
Signed-off-by: Dennis Verspuij <6680484+dennisverspuij@users.noreply.github.com>
2024-07-27 16:37:16 +07:00
Andy Scherzinger 4f2a29adf9
Merge pull request #46672 from nextcloud/fix/preview-invalid-id
Avoid using partial file info as valid one
2024-07-25 19:37:30 +07:00
Elizabeth Danzberger efe03ee690
feat: Add support for filling fields to backend components
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2024-07-25 11:11:40 +07:00
Elizabeth Danzberger 05ed5aa230
fix: Emit new `BeforeGetTemplates` event
Signed-off-by: Elizabeth Danzberger <lizzy7128@tutanota.de>
2024-07-25 11:11:38 +07:00
Julius Härtl 2b0bc8b310 fix: Do not return partial file info if we have a cache entry
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2024-07-22 22:32:34 +07:00
Ferdinand Thiessen 12796c3ae7
fix: FileInfo from `View` should have the correct name of a mountpoint
If a mountpoint is returned from a `View` the name must match the view scoped name
and not the global name.
For example group folders have a name like `1` or `2` (the ID),
but the name of the FileInfo returned fro mthe View should be the mount point name,
like `First groupfolder` or similar.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-22 22:01:12 +07:00
Ferdinand Thiessen 9716b0d735 refactor: Migrate some legacy and core functions to `IFilenameValidator`
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-19 19:41:46 +07:00
Robin Appelman c5b687271b
fix: make batch propagator work with sharding restrictions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 19:16:07 +07:00
Robin Appelman 0931492ff0
fix: make usermountcache compatible with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 19:16:05 +07:00
Robin Appelman ad88fd07e3
fix: make joining on tags in search queries work with sharding
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:39 +07:00
Robin Appelman 80f8c7949e
fix: always set storage id in Cache::get
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:31 +07:00
Robin Appelman 5ff7bde3fb
fix: add set storage id for more cache queries
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-17 15:46:21 +07:00
Ferdinand Thiessen 69341e4306
refactor: Migrate filename validation logic from `Storage` to `FilenameValidator`
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-16 12:49:09 +07:00
Ferdinand Thiessen bdbeabafa7
feat: Add `forbidden_filename_basenames` config option
This allows to configure forbidden filenames (the full filename like `.htaccess`)
and also forbidden basenames like `com0` where `com0`, `com0.txt` and `com0.tar.gz` will match.
We need this as only using basenames was too restrictive and will cause problems on some systems when updating.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-15 19:39:18 +07:00
Robin Appelman c82d382a20 feat: add base class for extending the query builder
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-07-12 17:01:39 +07:00
Ferdinand Thiessen cf935e33ae
fix: `OCP\Files\Node\Folder::search` was not setting the owner
The owner was not set on the file info causing e.g. webdav searches to never return the known owner.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-07-11 15:46:44 +07:00
Ferdinand Thiessen 46f1efac41
feat: Add `IFilenameValidator` to have one consistent place for filename validation
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>
2024-07-09 15:04:34 +07:00
Git'Fellow c84e76a749 fix(s3): Don't wait indefinitely for S3 to return
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: lint

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: use AwsException

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: Throw on connection failure

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: Wrap all in try catch block

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: use RequestTimeout error message

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

log: use OCP Server class

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: Handle connect timeout only

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>

fix: Handle errors more generically

Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-07-05 16:24:32 +07:00
Robin Appelman ffced73a71 fix: also use optimized getFirstNodeyIdInPath for Folder::getFirstNodeById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-06-20 18:51:27 +07:00
Ferdinand Thiessen ae1f5cc56d
fix(S3): Adjust usage of guzzle promise
`Promise\promise_for` was deprecated and is now removed and replaced with the static API (`Create::promiseFor`).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2024-06-16 15:54:44 +07:00
Robin Appelman 3a60e40a81
Merge pull request #45172 from nextcloud/test-scanner-no-transactions
feat: add option to disable scanner transactions
2024-06-13 14:01:34 +07:00
Robin Appelman 082c6c6e1d
fix: get child ids for folder in a separate query during move
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-06-13 10:38:57 +07:00
Josh 63886147ba fix(ObjectStore): handle empty S3 hostname
Fixes #45637

The support for s3-accelerate added in #44496 introduced a regression in AWS S3 environments when `hostname` is blank (which is a valid configuration w/ AWS since the hostname gets auto-generated).

Signed-off-by: Josh <josh.t.richards@gmail.com>
2024-06-12 15:43:20 +07:00
Louis Chemineau a93d3a5a10 fix(files): Use isRetryable to catch retryable exceptions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-06-11 15:15:14 +07:00
Ferdinand Thiessen 48e6240502
Merge pull request #45413 from nextcloud/createIfNotExists
fix(files): Try to create dir only if it not exists
2024-05-30 19:45:23 +07:00
Git'Fellow 77979b1475 Try create folder first and check if it exists after
Co-authored-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-05-30 14:27:44 +07:00
Git'Fellow 5c4e4c5590 fix(files): Try to create dir only if it not exists
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2024-05-30 14:27:44 +07:00
John Molakvoæ 91227c908b
Merge branch 'master' into refactor/OC-Server-getHTTPClientService
Signed-off-by: John Molakvoæ <skjnldsv@users.noreply.github.com>
2024-05-30 14:21:45 +07:00
Robin Appelman d87c23242b
Merge pull request #45014 from nextcloud/forbid-moving-subfolder
fix: forbid moving a folder into a subfolder of itself
2024-05-27 14:29:34 +07:00
Andy Scherzinger dae7c159f7
chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-05-24 13:11:22 +07:00
Robin Appelman 66d36bffa6
fix: forbid moving a folder into a subfolder of itself
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-05-17 17:45:44 +07:00
Marcel Klehr 843bb62d6d fix: LazyRoot missing method
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-05-14 11:38:39 +07:00
Marcel Klehr 00894e2420 feat: first pass at TaskProcessing API
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
2024-05-14 11:38:39 +07:00
Julius Härtl c4e32d33e0
Merge pull request #44953 from nextcloud/perf/44951/lock-provider
perf(ILockManager): Allow registering a lock provider lazy
2024-05-13 14:21:28 +07:00
Côme Chilliet 2d40dae4af
Merge pull request #45233 from nextcloud/fix/touch-propagate-size
fix: Avoid updating size when calling touch on a file
2024-05-13 11:48:06 +07:00