Commit graph

816 commits

Author SHA1 Message Date
Julien Veyssier
da455ee86e
feat(profile-picker): move the profile picker to the profile app, remove the user_picker app
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-02-23 14:40:50 +01:00
Julien Veyssier
20453312bd
feat(user-picker): adjust build files
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
2026-02-20 10:16:33 +01:00
Côme Chilliet
51ccc8a838
fix: Fix integration tests
Birthdate was missing in editable fields while being editable, and the
 order was checked while having no importance.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-05 10:40:23 +01:00
Robin Appelman
d71c6796ca
feat: perform share mount validation on share instead of on mount
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-21 16:35:53 +01:00
provokateurin
bf49f62da3
feat(UserPlugin): Also full match on additional email addresses
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:36:37 +01:00
provokateurin
7539fdbb72
test(UserPlugin): Cover full match email with sharee enumeration limited to group
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:36:32 +01:00
provokateurin
cfa25ece7e
fix(UserPlugin): Rewrite from scratch
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:29:58 +01:00
provokateurin
ad65bcb653
test(UserPlugin): Rewrite unit tests as integration tests
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:29:58 +01:00
provokateurin
ae53c2016b
test(ShareesContext): Reset all shareapi related system configs
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:19:36 +01:00
Côme Chilliet
f31f4eba7f
chore: While at it use strict array search in build/integration
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-01-13 11:48:59 +01:00
Daniel Calviño Sánchez
8e5ae53e02
Merge pull request #56938 from nextcloud/unify-handling-of-exclude-groups-in-contacts-menu-and-sharing
fix: Unify handling of exclude groups in contacts menu and sharing
2026-01-07 18:04:53 +01:00
Robin Appelman
8cfb49012d
test: update cross-share move tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-12-29 17:39:44 +01:00
Carl Schwan
bfb7e7dd8e
refactor: Add more typing to integration context code
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-17 10:14:40 +01:00
Carl Schwan
df2f3a8422
refactor(integration): Refactor and fix federation integration tests
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
2025-12-17 10:14:35 +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
Daniel Calviño Sánchez
a1c2a25d9d
Merge pull request #56922 from nextcloud/fix-phpunit-11-use-in-behat
test: Fix PHPUnit 11 use in Behat
2025-12-15 19:15:12 +01:00
Kate
db530d1eae
Merge pull request #56921 from nextcloud/fix-caching-routes-by-users-with-an-active-session
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 (master, 8.4, main, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (master, 8.4, main, 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
2025-12-15 10:53:04 +01:00
Daniel Calviño Sánchez
19c9d88970 test: Fix PHPUnit 11 use in Behat
Starting with PHPUnit 11.3, some complex outputs of certain asserts
(like "assertStringContainsString") require the output of PHPUnit to be
explicitly setup. Otherwise when the assert fails a type error is
thrown (although it does not seem to affect asserts with simpler
outputs, like "assertEquals").

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-13 01:22:30 +01:00
Daniel Calviño Sánchez
51ed61bb4a fix: Fix caching routes by users with an active session
When a user has an active session only the apps that are enabled for the
user are initially loaded. In order to cache the routes the routes for
all apps are loaded, but routes defined in routes.php are taken into
account only if the app was already loaded. Therefore, when the routes
were cached in a request by a user with an active session only the
routes for apps enabled for that user were cached, and those routes were
used by any other user, independently of which apps they had access to.
To solve that now all the enabled apps are explicitly loaded before
caching the routes.

Note that this did not affect routes defined using annotations on the
controller files; in that case the loaded routes do not depend on the
previously loaded apps, as it explicitly checks all the enabled apps.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-12 16:10:20 +01:00
Daniel Calviño Sánchez
de7ddb6e1c test: Fix recording app state when admin is not the current user
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-12 16:10:20 +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
Ferdinand Thiessen
e0e2d0fd2e
chore: drop usage of -integration docker image
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-12-10 01:13:50 +01:00
Ferdinand Thiessen
65135bba31
chore: move behat dependencies to vendor-bin
So we do not have 3 locatations to look for PHP dependencies.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-12-10 01:13:50 +01:00
Daniel Calviño Sánchez
fbe2023d39 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>
2025-12-09 19:16:59 +01:00
Daniel Calviño Sánchez
70ed393b34 test: Add integration tests for excluded groups in contacts and sharees
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-12-09 19:16:59 +01:00
dependabot[bot]
2af533e000
Merge pull request #56636 from nextcloud/dependabot/composer/build/integration/behat/behat-3.27.0 2025-11-25 22:58:28 +00:00
Ferdinand Thiessen
29325b4a7e
Merge pull request #56293 from nextcloud/dependabot/composer/build/integration/symfony/event-dispatcher-7.3.3
build(deps-dev): bump symfony/event-dispatcher from 6.4.25 to 7.3.3 in /build/integration
2025-11-25 02:24:02 +01:00
dependabot[bot]
3c73af0876
build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.26.0 to 3.27.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.26.0...v3.27.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 19:15:14 +00:00
skjnldsv
32e1d6cf9c chore(files_reminder): add integration tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-11-19 11:21:16 +01:00
provokateurin
901859eeb0
fix(FilesDropPlugin): Ensure all request for file request have a nickname
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-11-18 10:34:53 +01:00
Côme Chilliet
d1f295dd4a
fix(tests): Fix login test for remember me checkbox
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-11-17 14:15:11 +01: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 +01:00
Daniel Calviño Sánchez
dcda12c5db test: Add integration tests to get collaborators without sharebymail app
The "sharebymail" app is enabled by default, so it needs to be enabled
once the scenario ends as other scenarios could expect that the app is
enabled. To solve that now a special step is added that records the
enabled state of the given app and restores it once the scenario ends.

This step only restores the state of already installed apps. If an app
is installed during the test it will not be neither disabled nor
uninstalled after the test ends. Therefore, at least for now, it is
necessary to explicitly call the step to record the app to be restored,
rather than automatically keeping track of the changes in the enabled
state of the apps during the scenario.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:38 +01:00
Daniel Calviño Sánchez
cee2492196 test: Extract function to get apps with certain enabled state
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:37 +01:00
Daniel Calviño Sánchez
c1b475b75e test: Add tests to get user autocompletes similar to the email ones
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:37 +01:00
Daniel Calviño Sánchez
7441f15a94 test: Extend tests to check the same cases with and without full match
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:36 +01:00
Daniel Calviño Sánchez
e4d58d35fa test: Add integration tests for getting user and mail collaborators
The OCS endpoint expects either an int or an array for "shareType".
However, when using "getRowsHash()" only a single key is taken into
account, so instead of:
  | shareType[] | 0 |
  | shareType[] | 4 |
the share types are provided in a single row like:
  | shareTypes | 0 4 |
and then converted to "shareType[]=0&shareType[]=4" when sending the
request.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:36 +01:00
Daniel Calviño Sánchez
e68e5c3955 test: Add integration tests for getting collaborators by mail addresses
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:35 +01:00
Daniel Calviño Sánchez
27b57b8c86 test: Fix getting returned sharees when there are several results
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:35 +01:00
Daniel Calviño Sánchez
a164ab84d6 test: Check unique display name if provided in the response
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-11 00:54:34 +01:00
dependabot[bot]
0ab5f17300
build(deps-dev): bump symfony/event-dispatcher in /build/integration
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.4.25 to 7.3.3.
- [Release notes](https://github.com/symfony/event-dispatcher/releases)
- [Changelog](https://github.com/symfony/event-dispatcher/blob/7.3/CHANGELOG.md)
- [Commits](https://github.com/symfony/event-dispatcher/compare/v6.4.25...v7.3.3)

---
updated-dependencies:
- dependency-name: symfony/event-dispatcher
  dependency-version: 7.3.3
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-08 02:12:30 +00:00
Ferdinand Thiessen
e3b34891b0
chore: migrate to PHPUnit 11
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-11-05 15:42:33 +01:00
dependabot[bot]
fb78ee8389
build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.25.0 to 3.26.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.25.0...v3.26.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-01 02:07:27 +00:00
provokateurin
3a242166f7
fix(FilesDropPlugin): Fix request method and nickname header checks
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-10-16 08:47:28 +02:00
Kate
ae0aa175b3
Merge pull request #55661 from nextcloud/fix/55519/ldap-cert-req-handling 2025-10-14 09:42:16 +02:00
Louis Chemineau
d14c96b26d fix(contacts): Do not expose SAB in /contactsmenu
When hitting the `/contactsmenu/contacts` endpoint with the `dav.system_addressbook_exposed` config switch set to `"no"`, the system address book content is still listed in the response.

This ensure that we do not expose unexpectedly the system address book.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-10-10 19:02:40 +02:00
Arthur Schiwon
fbd29bcf7f
fix(LDAP): properly disable are require TLS certificate verification
- the old approach lead connection issues, as ldap_set_option was called
  too late. Specifically it needs to be called before ldap_connect and set
  globally!
- The old approach also connected it to the ldapTLS configuration, which
  has a misleading naming. It indicates StartTLS usage only, not plain TLS
  connections.

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
2025-10-09 20:22:37 +02:00
dependabot[bot]
bb6a265c55
build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.24.1 to 3.25.0.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.24.1...v3.25.0)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.25.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 21:13:30 +00:00
provokateurin
bfb4fe8f86
fix(core): Stop abusing the cache for avatar upload
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-25 13:08:14 +02:00
dependabot[bot]
fdea3a5290
build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.24.0 to 3.24.1.
- [Release notes](https://github.com/Behat/Behat/releases)
- [Changelog](https://github.com/Behat/Behat/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Behat/Behat/compare/v3.24.0...v3.24.1)

---
updated-dependencies:
- dependency-name: behat/behat
  dependency-version: 3.24.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-20 01:13:13 +00:00