Commit Graph

26247 Commits (5806dfbdcd885c3196321faf671949f49d36fd3a)

Author SHA1 Message Date
Louis 0b3041586b
Merge pull request #55981 from nextcloud/artonge/fix/encryption/increment_lastChunkNr
fix(encryption): Increment `lastChunkNr` when size is off
2025-11-25 10:18:43 +07:00
nfebe 40246d9a19 fix(sharing): Add isTrustedServer flag to lookup results
When `show_federated_shares_to_trusted_servers_as_internal` is enabled,
lookup server results were being filtered out because they lacked the
`isTrustedServer` flag. This adds the flag to lookup results by:

- Injecting TrustedServers service into LookupPlugin
- Adding `server` and `isTrustedServer` fields to each lookup result
- Updating tests to reflect new structure

This ensures lookup results from trusted servers appear in internal
sharing while non-trusted servers are correctly filtered out.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-11-24 23:32:40 +07:00
Joas Schilling 00e1264ade
Merge pull request #56416 from nextcloud/fix/clear-mount-cache-on-storage-change
fix: Clear mount cache when file storage changes during move
2025-11-24 14:03:41 +07:00
Kent Delante 96672e1c4d feat: emit an event when an S3 bucket is created
Signed-off-by: Kent Delante <kent.delante@proton.me>
2025-11-24 19:37:18 +07:00
Andy Scherzinger 9e2f07b7d4
Merge pull request #56395 from nextcloud/carl/cache-bucket-exists
perf(s3): Cache whether bucket exists
2025-11-24 12:13:27 +07:00
Nextcloud bot 5549200851
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-23 00:13:36 +07:00
Louis Chmn 30d567fd0e fix(encryption): Increment lastChunkNr when size is off
When computing the unencrypted file size, we need the size of the last encrypted chunk as its size is usually not the regular 8192 bits.

To avoid reading the whole file, we seek directly to that last chunk based on the expected file size. When the expected file size is smaller than the actual one, we have a logic in place to continue reading until we reach the end of the file.

In that logic, we forgot to increment the `$lastChunkNr` which is important when we later check the signature of the chunk.

This commit adds that missing increment.

Signed-off-by: Louis Chmn <louis@chmn.me>
2025-11-21 17:34:19 +07:00
Carl Schwan a228ffa641
refactor(s3): Readability
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2025-11-20 16:50:14 +07:00
Carl Schwan d4356e6491 refactor(ServerVersion): Add missing type hinting
And mark the class as consumable and readonly.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-20 16:48:26 +07:00
Tobias Kaminsky 6f0537b4e9
Merge pull request #56494 from nextcloud/carl/result-improv
Improve IResult
2025-11-20 15:38:17 +07:00
Benjamin Frueh 989b75ee43 fix: Clear mount cache when file storage changes during move
Signed-off-by: Benjamin Frueh <benjamin.frueh@gmail.com>
2025-11-20 09:15:28 +07:00
Nextcloud bot d400b38000
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-20 00:14:17 +07:00
nfebe 3030783785 feat(objectstore): add configurable S3 retry attempts
Add retriesMaxAttempts parameter to S3 objectstore configuration
to allow customization of AWS SDK retry behavior for handling
unreliable network conditions or proxy issues.

Defaults to 5 retries (AWS SDK default) if not specified.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-11-19 16:17:43 +07:00
Marcel Müller 8e04afc2b1
Merge pull request #56451 from nextcloud/feat/noid/update-user-keys
feat: Add option to update the public key of a user
2025-11-19 13:42:30 +07:00
Carl Schwan 90f4b98424 refactor(IResult): Un-deprecate fetch and fetchAll
But still add a note that the new methods are preferred.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-19 10:53:03 +07:00
Marcel Müller 234f183f8e feat: Add option to update the public key of a user
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-11-19 10:51:43 +07:00
Nextcloud bot 2d9d612ec1
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-19 00:13:53 +07:00
Robin Appelman 9fcc2937aa
Merge pull request #56515 from nextcloud/s3-meta-encode
Encode s3 metadata as base64 if needed
2025-11-18 22:23:24 +07:00
Robin Appelman a7d130c598
Revert "fix(ObjectStoreStorage): Encode original-path in writeStream by @frabe1579"
This reverts commit 4b4b39e7ec.

Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-18 19:53:17 +07:00
Carl Schwan 503a65ddd0 refactor: Run rector
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:54 +07:00
Carl Schwan 3682dbbf5e feat(result): Update result wrapper with new doctrine methods
- fetch is replaced with fetchAssociative/fetchNumeric/fetchOne with
  better type hinting
- Same with fetchAll
- And add iterateAssociative/iterateNumeric which are nicer to use than
  a `while ($row = $result->fetch()) {}`

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-18 17:45:13 +07:00
Robin Appelman 8194be795d
fix: encode s3 metadata as base64 if needed
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-18 16:06:57 +07:00
Joas Schilling 7c870a8f67
fix(db)!: Deprecate JSON fields due to problems with querying and selecting
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:33 +07:00
Joas Schilling 60bfab2421
fix(db): Fix Oracle JSON handling
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:33 +07:00
Joas Schilling 4676b12a32
fix(db): Fix comparing JSON data in MySQL and MariaDB
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:32 +07:00
Joas Schilling fb8caecbb0
fix(db): Fix JSON handling in WHERE statements for postgres
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-18 11:58:31 +07:00
Nextcloud bot 83a0e8a7a5
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-18 00:14:24 +07:00
Stephan Orbaugh 3a26574f29
Merge pull request #56243 from nextcloud/fix/noid/share-permissions-attribute
Fix potentially broken shares from the past
2025-11-17 14:07:49 +07:00
Joas Schilling f27f4524c4
Merge pull request #56438 from nextcloud/work/carl/profiler-updtae
feat(profiler): Use gzdecode/gzencode to parse profiles
2025-11-17 12:47:59 +07:00
Julien Veyssier 8b3e59fa36
fix(sharing): fix potentially broken shares from the past, change 'null' download permission to 'true'
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-17 10:07:44 +07:00
Nextcloud bot 51cb58be1f
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-17 00:13:26 +07:00
Nextcloud bot 7e92820474
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-16 00:13:30 +07:00
Nextcloud bot 91b5d5f511
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-15 00:13:19 +07:00
Carl Schwan 6a5f9c3c89 feat(profiler): Use gzdecode/gzencode to parse profiles
See 42a80727f9/src/Symfony/Component/HttpKernel/Profiler/FileProfilerStorage.php (L299)

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-14 14:19:33 +07:00
Stephan Orbaugh 1498b5d96e
Merge pull request #56343 from nextcloud/feat/add-rememberme-checkbox
Add rememberme checkbox
2025-11-13 16:53:50 +07:00
Stephan Orbaugh 2d0c5cf627
Merge pull request #56218 from nextcloud/feat/di/abort-infinite-loop
feat(DI): Abort querying if infinite loop is detected
2025-11-13 16:15:49 +07:00
Côme Chilliet 4e83d20837 feat(login): Add rememberme checkbox
Only present if allowed by configuration.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-13 13:25:59 +07:00
Côme Chilliet 28b48eec39 chore: Improve typing and codestyle in LoginData
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-13 13:25:59 +07:00
Nextcloud bot ba287d710b
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-13 00:14:19 +07:00
Andy Scherzinger 32c149e8ea
Merge pull request #56255 from nextcloud/availability-same-request
make failed availability check apply in the same request
2025-11-12 18:45:01 +07:00
Carl Schwan 67d0307e66 perf(s3): Cache whether bucket exists
Otherwise, we call doesBucketExist all the time which does a network
request to the S3 server adding some non-trivial latency when creating a
S3 connection object.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-11-12 14:17:48 +07:00
provokateurin e22cfbf7d7
fix(config.sample.php): Update enabledPreviewProviders
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-11-12 12:34:42 +07:00
Kate e5f50dafcb
Merge pull request #55620 from nextcloud/fix/appframework/check-reponder-existence 2025-11-12 11:46:08 +07:00
Daniel Calviño Sánchez 0ce4b4b371
Merge pull request #52012 from nextcloud/fix-user-collaborators-returned-when-searching-for-mail-collaborators
Fix user collaborators returned when searching for mail collaborators
2025-11-12 11:04:07 +07:00
Joas Schilling 49324bcb21
Merge pull request #56346 from nextcloud/feat/noid/allow-overwriting-rate-limit
feat(rate-limit): Allow overwriting the rate limit
2025-11-12 10:09:16 +07:00
provokateurin f720925b06
fix(AppFramework): Check for responder existence
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-11-12 09:39:53 +07:00
Joas Schilling 2b9083ab29
feat(rate-limit): Allow overwriting the rate limit
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-11-12 08:59:40 +07:00
Nextcloud bot b3fd79fff3
fix(l10n): Update translations from Transifex
Signed-off-by: Nextcloud bot <bot@nextcloud.com>
2025-11-12 00:14:18 +07:00
Daniel Calviño Sánchez c40fcba5a4 fix: Fix user collaborators returned when searching for mail collaborators
The MailPlugin collaborator returned results for both user and mail
collaborators, but it was registered only for mail collaborators. While
it might make sense to move the user results to the UserPlugin instead
that change would be more complex and riskier, so for now the MailPlugin
is now registered for both user and mail collaborators and the results
are limited only to the registered type.

As the plugins are registered only with their class and then resolved
when needed using dependency injection it is not possible (as far as I
know) to provide an explicit parameter in the constructor to
differentiate whether the MailPlugin should return user or mail
collaborators. To overcome this two subclasses are introduced,
MailByMailPlugin and UserByMailPlugin, which just hardcode in their
constructor the collaborator type that their parent MailPlugin must use,
and those subclasses are the ones registered instead of the MailPlugin
(which still contains all the logic).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 01:20:17 +07:00
Julien Veyssier 33d1acddc7
fix(ai-apis): reject text inputs that are longer than 64K chars
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2025-11-10 17:29:09 +07:00