Commit graph

744 commits

Author SHA1 Message Date
Daniel Calviño Sánchez
a4bf16e779 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 21:08:25 +01:00
Daniel Calviño Sánchez
5f6d25347e 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-12 21:08:25 +01:00
Daniel Calviño Sánchez
e30875742b test: Extract function to get apps with certain enabled state
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 21:08:25 +01:00
Daniel Calviño Sánchez
6a4865b90a 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-12 21:08:14 +01:00
Daniel Calviño Sánchez
ed432cb57b 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-12 20:53:59 +01:00
Daniel Calviño Sánchez
fda33370fc 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-12 20:53:05 +01:00
Daniel Calviño Sánchez
4c9ab6ee1f test: Add integration tests for getting collaborators by mail addresses
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 20:38:57 +01:00
Daniel Calviño Sánchez
bd4e856f41 test: Fix getting returned sharees when there are several results
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 12:51:42 +01:00
Daniel Calviño Sánchez
abc82b4d09 test: Check unique display name if provided in the response
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-11-12 12:51:42 +01:00
Louis Chemineau
860d84123f 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 Chmn <louis@chmn.me>
2025-10-12 16:26:09 +02:00
dependabot[bot]
0601e2d620 build(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.27 to 9.6.29.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.29/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.27...9.6.29)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.29
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 00:25:55 +02:00
provokateurin
f7f2554c15
fix(core): Stop abusing the cache for avatar upload
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-09-26 19:36:34 +02:00
dependabot[bot]
f974c8cafb
build(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.26 to 9.6.27.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.27/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.26...9.6.27)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.27
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-20 02:37:43 +00:00
dependabot[bot]
1a8c368f46
build(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.25 to 9.6.26.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.26/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.25...9.6.26)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.26
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-13 05:50:29 +00:00
Ferdinand Thiessen
bd397aee01
fix(dav): ensure moving or copying a file is possible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-09-02 18:01:10 +02:00
dependabot[bot]
f68cde67a8
build(deps-dev): bump symfony/event-dispatcher in /build/integration
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.4.24 to 6.4.25.
- [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.24...v6.4.25)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 01:06:40 +00:00
dependabot[bot]
781f7940fb
chore(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.24 to 9.6.25.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.25/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.24...9.6.25)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.25
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-23 01:21:41 +00:00
dependabot[bot]
fcdd4165cd
chore(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.23 to 9.6.24.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.24/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.23...9.6.24)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.24
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-16 01:30:08 +00:00
dependabot[bot]
d1e465abf3
chore(deps-dev): bump symfony/event-dispatcher in /build/integration
Bumps [symfony/event-dispatcher](https://github.com/symfony/event-dispatcher) from 6.4.13 to 6.4.24.
- [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.13...v6.4.24)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 01:21:55 +00:00
Daniel Calviño Sánchez
ac6b07356d fix: Fix theming for disabled accounts
The Theming app injects the stylesheets for the different themes in the
"<header>" element of the page, and those stylesheets are then loaded by
the browser from a "Controller" (a plain "Controller", not an
"OCSController"). The stylesheets, in turn, may also get some images
(like the background) also from the "Controller".

When handling a request to "index.php" it is checked whether the user is
logged in and, if not, a login is tried. A disabled user is explicitly
seen as not logged in, so a login is always tried in that case, but
disabled users are also explicitly prevented to log in, so the login
also fails. Due to that trying to get any of the themed stylesheets or
images with a disabled account (to be able to show the "Account
disabled" error page) fails with an HTTP status 401.

To solve that, and to avoid touching this basic logic as much as
possible, the login exception is now ignored (if the user is disabled)
for some specific requests to the Theming app.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-07-11 02:54:16 +02:00
provokateurin
987af4193d
fix(files): Always transfer incoming shares when doing ownership transfer to prevent broken reshares
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-07-01 13:08:13 +02:00
Richard Steinmetz
a402a84544
fix: revive always storing lowercased email addresses
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-06-24 14:24:48 +02:00
Daniel Kesselberg
85746b9ebc
test(dav): add integration test for principal property search
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2025-06-17 20:02:30 +02:00
skjnldsv
8f2d3fcfb6 fix(dav): file drop nickname
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-06-05 08:56:17 +02:00
dependabot[bot]
51270d8089 build(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.22 to 9.6.23.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.23/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.22...9.6.23)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.23
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-29 14:56:14 +02:00
dependabot[bot]
490d2a6a53 build(deps-dev): bump behat/behat in /build/integration
Bumps [behat/behat](https://github.com/Behat/Behat) from 3.16.0 to 3.16.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.16.0...v3.16.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-28 14:21:32 +02:00
Ferdinand Thiessen
3ce306ec57 feat(files): add command to automatically rename filenames
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>
2025-05-26 10:12:50 +02:00
Joas Schilling
3923eaba04 feat(profile): Add an API to get the profile field data
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-24 00:50:11 +02:00
dependabot[bot]
bca137597b
Merge pull request #52313 from nextcloud/dependabot/composer/build/integration/stable31/guzzlehttp/guzzle-7.9.3 2025-04-23 08:20:36 +00:00
dependabot[bot]
553c019eaa
build(deps-dev): bump phpunit/phpunit in /build/integration
Bumps [phpunit/phpunit](https://github.com/sebastianbergmann/phpunit) from 9.6.21 to 9.6.22.
- [Release notes](https://github.com/sebastianbergmann/phpunit/releases)
- [Changelog](https://github.com/sebastianbergmann/phpunit/blob/9.6.22/ChangeLog-9.6.md)
- [Commits](https://github.com/sebastianbergmann/phpunit/compare/9.6.21...9.6.22)

---
updated-dependencies:
- dependency-name: phpunit/phpunit
  dependency-version: 9.6.22
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:58:23 +00:00
dependabot[bot]
dc1032cc64
build(deps-dev): bump guzzlehttp/guzzle in /build/integration
Bumps [guzzlehttp/guzzle](https://github.com/guzzle/guzzle) from 7.9.2 to 7.9.3.
- [Release notes](https://github.com/guzzle/guzzle/releases)
- [Changelog](https://github.com/guzzle/guzzle/blob/7.9/CHANGELOG.md)
- [Commits](https://github.com/guzzle/guzzle/compare/7.9.2...7.9.3)

---
updated-dependencies:
- dependency-name: guzzlehttp/guzzle
  dependency-version: 7.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 12:58:11 +00:00
Ferdinand Thiessen
d3fe0826b4 fix(dav): allow uploading of files with long filenames
A filename must be less or equal 255 characters, but when adding the
`.part` and `.ocfiletransfer` extensions we might overflow this limit.
So we should also use filename hashes for uploading when the file has a
long filename, similar like when we are uploading to the user storage
directly.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-04-22 11:53:46 +00:00
skjnldsv
de30163f9a
fix(files_sharing): expireDate null tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-22 11:17:22 +02:00
skjnldsv
496521e993 test: enable rate limiting for ratelimiting.feature
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-04-15 08:58:17 +00:00
Joas Schilling
7a6fd82a4b test: Disable ratelimit as tests trigger it
Signed-off-by: Joas Schilling <coding@schilljs.com>
2025-04-15 08:58:17 +00:00
Côme Chilliet
304112b0ad
fix(tests): Sort activities by id to get the last one
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-27 12:20:35 +01:00
Côme Chilliet
69235976ad
feat: Add context and test steps for activity in sharing
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-27 12:20:22 +01:00
Côme Chilliet
d3b976bf36
feat: add integration test for sharing activity
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-03-27 12:20:03 +01:00
Louis Chemineau
d0b4746a08 feat: Support deleting metadata from WebDAV
The `$value` will be `null` if the update is wrapped inside a `<d:remove>...</d:remove>` block.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-03-04 13:12:20 +00:00
provokateurin
64ed0c05dd
fix(Share20): Convert broken hooks to IEventListener
Signed-off-by: provokateurin <kate@provokateurin.de>
2025-03-04 07:56:59 +01:00
Côme Chilliet
f09de1f2c5 fix: Fix test by scanning group before using it
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-27 15:35:22 +00:00
Ferdinand Thiessen
2c03bc74fa
fix(provisioning_api): Correct limit for editUser
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-02-06 15:46:15 +01:00
Ferdinand Thiessen
8fc1b6f1cd fix(sharing): Ensure download restrictions are not dropped
When a user receives a share with share-permissions but also with
download restrictions (hide download or the modern download permission attribute),
then re-shares of that share must always also include those restrictions.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-02-04 15:06:11 +00:00
Ferdinand Thiessen
124db6147d test: Reset sharing app config after test
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-01-28 17:26:28 +00:00
Ferdinand Thiessen
2926fe270a fix(files_sharing): Respect permissions passed when creating link shares
Given:
User creates a link or email share with permissions=4 (create only = file drop).

Problem:
Currently the permissions are automatically extended to permissions = 5
(READ + CREATE). Work around was to create the share and directly update
it.

Solution:
Respect what the user is requesting, create a file drop share.

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>
2025-01-28 17:26:28 +00:00
Daniel Calviño Sánchez
bf45ce843c test: Add integration tests for moving a file from and to a shared folder
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2025-01-27 17:01:14 +00:00
Richard Steinmetz
cc9f1e00dd fix(dav): default calendar and address book not created on first login
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
2025-01-23 22:54:02 +01:00
skjnldsv
abd3cb60fc fix(files): more conversion tests and translate error messages
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-01-17 18:22:58 +01:00
skjnldsv
19ce362896 chore: add file conversion integration tests
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-01-16 18:55:44 +01:00
skjnldsv
669e6cadd6 chore(federation): cleanup SettingsController and legacy AddServerMiddleware
Signed-off-by: skjnldsv <skjnldsv@protonmail.com>
2025-01-09 15:39:01 +01:00