Commit graph

6188 commits

Author SHA1 Message Date
Côme Chilliet
a5e79add44 fix(tests): Adapt Middleware tests to API change
Removed a few tests rendered obsolete by the refactoring.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-03-20 11:00:58 +01:00
Maksim Sukharev
96e24b3da0 fix(bg_jobs): store job argument as a text, increase length cap from 4000 to 32000
Signed-off-by: Maksim Sukharev <antreesy.web@gmail.com>
2026-03-19 11:38:40 +01:00
Louis
fdd2e624ac
Merge pull request #58659 from nextcloud/backport/58057/stable32
[stable32] perf(sharing): Avoid loading all shares from all users when unsharing
2026-03-18 18:22:47 +01:00
Carl Schwan
7f53bfae6c
Merge pull request #58847 from nextcloud/backport/53733/stable32
Some checks are pending
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable32, 8.1, stable32, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
[stable32] fix: give target file all permissions on copy
2026-03-12 09:45:05 +01:00
Robin Appelman
40c5f0e51e
fix: make objectstore copy consistent with changed local storage behavior
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-10 18:17:20 +01:00
Robin Appelman
e06679c932 test: add test for updating cached mounts with multiple entries for root id
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-10 16:33:28 +00:00
Anna Larch
447c77e23e fix: add fallback to raw path info
Follow up to https://github.com/nextcloud/server/pull/56843

The raw path info method has no fallback for an empty array parameter

Signed-off-by: Anna Larch <anna@nextcloud.com>
2026-03-10 12:52:15 +00:00
Ferdinand Thiessen
cfa95919ee
test(preview): properly test postscript preview provider
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-03-03 02:19:02 +01:00
Carl Schwan
c3a15af538
perf: Perform share path validation early
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-02 16:08:46 +01:00
Josh
f81c58c479 test(Storage): avoid falsy directory/filename checks (for now)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:34 +00:00
Josh
5f23d5b831 test(Storage): expand file / directory name tests
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:34 +00:00
Carl Schwan
3e8f02308a 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-03-02 11:25:52 +00:00
Marcel Müller
008249440a fix: Use configured loglevel even when log.condition matches is set
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2026-02-27 15:02:30 +00:00
Salvatore Martire
122b019f5c fix(L10N): stop stripping _ from language codes
Stripping the underscore breaks support for all languages like de_AT,
de_DE and so on...

Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-25 15:55:06 +00:00
Robin Appelman
87504e27d0
test: add test for calling filesize on non-existing files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 18:08:38 +01:00
Carl Schwan
cbe4a26156
fix(propagator): Improve lock behavior of propagator
Fix possible dead locks when running the propagator caused by two
requests updating the same amount rows in transactions.

- Lock rows always in the same deterministic order by sorting the
  path_hash first

- On all database outside of sqlite, also do first a SELECT FOR UPDATE
  to lock all the rows used in batch UPDATE calls, afterward to decrease
  the risk of two requests trying to lock the same rows

Signed-off-by: Carl Schwan <carlschwan@kde.org>
(cherry picked from commit cae742d182)
2026-02-17 10:39:11 +01:00
Louis
abb135e64d
Merge pull request #57925 from nextcloud/backport/57522/stable32
[stable32] Add InstallationCompletedEvent for post-installation actions
2026-02-04 16:55:30 +01:00
Joas Schilling
a89b1b1a4b test(Updater): Harden flaky test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 10:04:34 +00:00
Misha M.-Kupriyanov
47d41c0bab feat(install): dispatch InstallationCompletedEvent in Setup
Integrate event dispatching into Setup class:
- Inject IEventDispatcher dependency
- Dispatch InstallationCompletedEvent after successful installation
- Add Setup tests for event integration
- Update composer autoload for new class

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-02-03 09:47:51 +01:00
Misha M.-Kupriyanov
08df93ec9a feat(install): add InstallationCompletedEvent for post-installation hooks
Add InstallationCompletedEvent class in public API (OCP namespace) that
provides installation details: data directory, admin username, and admin
email. Event will be dispatched after successful installation.

Include comprehensive unit tests covering all event scenarios.

Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-02-03 09:47:51 +01:00
Joas Schilling
6b95ad0aab test(dispatcher): Add some tests with input 0
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-03 08:18:27 +00:00
provokateurin
663e6f7828
test(UserPlugin): Rewrite unit tests as integration tests
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 15:58:34 +01:00
Louis Chemineau
4381cc8f84 feat(files): Add appconfig value to disable fixed userfolder permissions optimization
Signed-off-by: Robin Appelman <robin@icewind.nl>
Signed-off-by: Louis Chemineau <louis@chmn.me>
2026-01-14 14:31:12 +01:00
Christoph Wurst
b0cfb452b7 perf: log slow DNS operations
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2026-01-08 13:07:04 +00:00
Benjamin Gaussorgues
f5a381acf6
Merge pull request #57299 from nextcloud/backport/52442/stable32 2026-01-08 11:02:29 +01:00
Benjamin Gaussorgues
d9c8ea6dd6
Merge pull request #57416 from nextcloud/backport/56938/stable32 2026-01-08 08:55:16 +01:00
Joas Schilling
cb4557ba34
Merge pull request #57420 from nextcloud/backport/57414/stable32
[stable32] fix(l10n): Fix language selection
2026-01-07 22:39:05 +01:00
Joas Schilling
eff3bb4c78 fix(l10n): Fix language selection
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 18:06:35 +00:00
Joas Schilling
ea0d1d3f2e fix(controller): Support native int ranges
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-07 18:06:10 +00:00
Daniel Calviño Sánchez
bb2ae56457 fix: Unify handling of exclude groups in contacts menu and sharing
If the current user belongs to both one or more groups excluded from
sharing and one or more groups not excluded from sharing the user is
allowed to share. However, in the contacts menu, as soon as the current
user belonged to a group excluded from sharing the user could not search
for local contacts. This has been unified now with the sharing
behaviour, so local contacts can still be searched if the user also
belongs to a group not excluded from sharing (or to no group at all,
which was also allowed before).

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2026-01-07 17:05:52 +00:00
Daniel Calviño Sánchez
855d0f06c1 test: Add unit test for excluded groups in contacts menu
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2026-01-07 17:05:52 +00:00
Daniel Calviño Sánchez
3157405b66 test: Adjust unit test name to better reflect its behaviour
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2026-01-07 17:05:52 +00:00
Robin Appelman
eedeae492d
test: add tests for watcher check filter
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-12-31 13:15:29 +01:00
provokateurin
3d113daa60
fix(UserMountCache): Add back unique index for oc_mounts and use normal insert
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-16 10:47:30 +01:00
nfebe
da82f6f79f fix: Include email when searching share suggestions
Signed-off-by: nfebe <fenn25.fn@gmail.com>

[skip ci]
2025-12-16 00:32:38 +01:00
nfebe
f94d30cbc6 fix(sharing): Adapt share suggestions to match trusted servers configs
When `show_federated_shares_to_trusted_servers_as_internal` is enabled
but `show_federated_shares_as_internal` is not, filter federated share
suggestions to only include trusted servers. Previously, searching for
an email address would suggest non-trusted federated servers.

Resolved: #54511
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2025-12-16 00:32:38 +01:00
nfebe
0c437fc8b5 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-12-04 11:50:36 +01:00
nfebe
58991b1b19 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-03 19:53:17 +01:00
Andy Scherzinger
8c09cdd07d
Merge pull request #56766 from nextcloud/backport/52749/stable32
[stable32] feat(CertificateManager): Add option to specify the default certificates bundle path
2025-12-01 14:54:10 +01:00
provokateurin
6b2c19df98
feat(CertificateManager): Add option to specify the default certificates bundle path
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-12-01 11:55:11 +01:00
Richard Steinmetz
bd760856bb fix(l10n): do not consider user language when getting the generic one
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-11-25 15:43:32 +00:00
Marcel Müller
8b76146ac1 feat: Add option to update the public key of a user
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2025-11-19 12:43:12 +00:00
Côme Chilliet
b51c1d7f8d feat(login): Add rememberme checkbox
Only present if allowed by configuration.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-17 13:03:56 +01:00
Robin Appelman
a784bdadcf
Merge pull request #56407 from nextcloud/backport/56255/stable32
[stable32] make failed availability check apply in the same request
2025-11-12 22:49:23 +01:00
Daniel Calviño Sánchez
14aef68eaf
Merge pull request #56393 from nextcloud/backport/52012/stable32-fix-user-collaborators-returned-when-searching-for-mail-collaborators
[stable32] Fix user collaborators returned when searching for mail collaborators
2025-11-12 18:46:20 +01:00
Robin Appelman
8b3f4da52f fix: make failed availability check apply in the same request
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-11-12 17:45:55 +00:00
Daniel Calviño Sánchez
16c26101d0 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-12 13:22:25 +01:00
Daniel Calviño Sánchez
acfbd9ceac test: Rename data providers to match the name of their tests
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 11:16:17 +01:00
Daniel Calviño Sánchez
e2ee09a19a test: Replace magic value with named constant of share type
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 11:16:16 +01:00
Daniel Calviño Sánchez
cdbd236697 test: Rename parameters to show that they are expected values
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 11:16:16 +01:00