7975 Commits

Author SHA1 Message Date
Andy Scherzinger
e3d0ead392 Merge pull request #58658 from nextcloud/backport/58057/stable33
[stable33] perf(sharing): Avoid loading all shares from all users when unsharing
2026-03-03 07:47:11 +01:00
Carl Schwan
94c4235151 perf: Perform share path validation early
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-02 16:07:24 +01:00
Josh
16ffc27537 test(Storage): avoid falsy directory/filename checks (for now)
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Josh
c4b94641c3 test(Storage): expand file / directory name tests
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Carl Schwan
c90bf858ec 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:49 +00:00
Marcel Müller
b51a4f452b 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:01:30 +00:00
Salvatore Martire
9f004aa657 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:21 +00:00
Andy Scherzinger
4a7eb39791 Merge pull request #58536 from nextcloud/backport/58128/stable33
[stable33] fix(share): Set expiration time to end of day (23:59:59)
2026-02-24 20:57:46 +01:00
Robin Appelman
276ca39a37 test: add test for calling filesize on non-existing files
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 18:04:30 +01:00
nfebe
6df78fad3d test(share): Update expiration date tests for end-of-day time
Update expected values in ManagerTest to reflect the new behavior
where share expiration dates are set to 23:59:59 instead of 00:00:00.

Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-02-24 10:23:09 +00:00
Carl Schwan
cae742d182 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>
2026-02-11 16:25:12 +01:00
Salvatore Martire
cf74d63652 fix: add X-User-Id header to logout response before clearing the user session
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-06 17:18:48 +00:00
Andy Scherzinger
cdbcfea1ff Merge pull request #58055 from nextcloud/backport/57921/stable33
[stable33] fix(snowflakes): create file lock files into lock directory
2026-02-04 17:35:36 +01:00
Benjamin Gaussorgues
5dbb40dc4b chore(snowflakes): don't remove file lock directory during tests
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-02-04 10:12:47 +00:00
Joas Schilling
d47a152b77 test(Updater): Harden flaky test
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 10:04:50 +00:00
Andy Scherzinger
baff429c1c Merge pull request #58000 from nextcloud/setup-root-path-children-less-setup-33
[stable33] getById: don't setup for all users with access by default
2026-02-03 20:43:56 +01:00
Andy Scherzinger
103ede3ce4 Merge pull request #57999 from nextcloud/backport/57737/stable33
[stable33] feat: Add twofactor applications to most of the presets
2026-02-03 15:56:58 +01:00
Joas Schilling
6fa4625c08 test(dispatcher): Add some tests with input 0
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-03 08:18:44 +00:00
Robin Appelman
0496d1332c test: adjust tests to updated getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-02 19:01:28 +01:00
Côme Chilliet
72ccd53567 chore: Remove broken PresetManager tests
Those are not Unit tests but integration tests with bad side effects on
 other tests. I failed to clean them up so removing them.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-02 14:12:53 +00:00
Robin Appelman
918db6f5ba test: adjust tests to new getById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 18:50:59 +01:00
Carl Schwan
b72f879a21 perf(MountManager): use binary search to find mount in path
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 12:54:14 +00:00
Andy Scherzinger
7b3c071951 Merge pull request #57889 from nextcloud/backport/stable33/55649
[stable33] On demand preview migration
2026-01-29 08:18:29 +01:00
Carl Schwan
62ed106260 feat(preview): On demand preview migration
When requesting previews, which we don't find in oc_previews, search in
IAppData first before creating them.

Move the logic from MovepreviewJob to PreviewMigrationService and reuse
that in the Preview Generator.

At the same time rename MovePreviewJob to PreviewMigrationJob as it is a
better name.

Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
(cherry picked from commit 6149168129)
2026-01-28 22:36:05 +01:00
Misha M.-Kupriyanov
5d42c9c5de 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-01-28 20:27:36 +01:00
Misha M.-Kupriyanov
218b9a4dcd 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-01-28 20:27:36 +01:00
Ferdinand Thiessen
4fba8736cf test(preview): properly test postscript preview provider
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-28 10:25:08 +00:00
Benjamin Gaussorgues
47c6a59e81 chore(openmetrics): add more complete test for controller
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 13:37:16 +00:00
Benjamin Gaussorgues
66cf18950f fix(openmetrics): ensure unit is a suffix of metric name
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 13:37:16 +00:00
Benjamin Gaussorgues
dedda1b753 fix(openmetrics): remove superfluous empty lines
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 13:37:16 +00:00
Andy Scherzinger
cb68b2d7dc Merge pull request #57809 from nextcloud/backport/57764/stable33
[stable33] fix(openmetrics): fix label names and add test for them
2026-01-26 18:58:38 +01:00
Benjamin Gaussorgues
ee8d0b1545 fix(openmetrics): fix label names and add test for them
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-26 09:04:56 +00:00
iasdeoupxe
19a2c3ad18 feat: Add mimetype aliases/mapping/names for .toml and .ovpn
Signed-off-by: iasdeoupxe <39667843+iasdeoupxe@users.noreply.github.com>
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-26 07:24:33 +00:00
Joas Schilling
37616c48b7 fix(openmetrics): Make openmetrics always an array like all other infoxml fields
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-26 06:11:18 +00:00
Joas Schilling
0e699377bd fix(openmetrics): Allow openmetrics in info.xml
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-26 06:11:18 +00:00
Andy Scherzinger
0b168dc5b9 Merge pull request #57792 from nextcloud/backport/57759/stable33
[stable33] feat(openmetrics): add log level
2026-01-25 23:05:25 +01:00
Benjamin Gaussorgues
a7281ad36e feat(openmetrics): add log level
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-25 16:12:17 +00:00
Ferdinand Thiessen
4595dd4a36 feat: allow to filter contacts by team
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-25 14:39:03 +01:00
Ferdinand Thiessen
428e76214e chore: drop legacy WhatsNew
This feature was not used in 8 years and from frontend did not even
properly work anymore and was implemented using deprecated API.
So get rid of it.

The last version that was using a changelog from the changelog server
was Nextcloud 20.

We use the firstrunwizard nowadays for informing about Nextcloud
changes in new releases.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-21 23:23:10 +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
Ferdinand Thiessen
67eef32b07 fix(DB): support up to 63 character long table and index names
We do not support Oracle 11 anymore but at least Oracle 12c (12.2).
So the limitation is gone (Oracle now supports up to 128 character long
names).

Instead we are now limited by MySQL (64 characters) and PostgreSQL (63
characters).

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-18 14:50:34 +01:00
SebastianKrupinski
16198d2b37 feat: automated appointment creation
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-15 13:31:44 -05:00
Andy Scherzinger
abe5499e14 Merge pull request #57498 from nextcloud/carl/rename-imountproviderargs
refactor(files): Rename IMountProviderArgs
2026-01-14 17:50:43 +01:00
Robin Appelman
6eb8e8d6fd Merge pull request #57519 from nextcloud/get-existing-api
feat: add api to get a user object without verifying they exist
2026-01-14 11:15:42 +01:00
Ferdinand Thiessen
d26ec02aa1 refactor(core): migrate login flow ui from jQuery to Vue
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-14 01:15:01 +01:00
Robin Appelman
5924a2e3ec feat: add api to get a user object without verifying they exist
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-13 15:59:07 +01:00
Ferdinand Thiessen
5f33fee58f Merge pull request #56941 from nextcloud/fix/importmaps
fix(template): add import map for JS module entry points
2026-01-12 20:38:58 +01:00
Carl Schwan
7b05c8f797 refactor(files): Rename IMountProviderArgs
It's not an interface so the I-prefix is inadequate.

Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-12 17:33:52 +01:00
Joas Schilling
6bdda55733 Merge pull request #57453 from nextcloud/feat/noid/qr-code-in-account-menu
Improve usability of QR code login
2026-01-12 14:01:10 +01:00
Ferdinand Thiessen
f0e020f97d fix(template): add import map for JS module entry points
Currently apps are broken if they have exports in the JS entry point,
because they then will import from the entry point but because they do
not know about the Nextcloud cache buster they will import without cache
buster.

This results in two problem:
1. The module might be outdated (old cached)
2. The module is duplicated, so the module will be loaded twice and will
   have two different - out of sync - states. This also means it will
   re-run sideeffects of the entry point.

To fix this we generate an import map which basically maps the plain
entry point script to the script with cache buster added.

(Some background: Bundler will try to minimize chunks (reduce page
loading time) so they can inline modules into entry points and thus
extend the entry point exports and then this issue would be caused).

For example:
```js
// entry.mjs
console.error('called')

async function onClick() {
  await import('./chunk.mjs')
}

export const name = 'foo'

// chunk.mjs
import { name } from './entry.mjs'

console.error(name)
```

When calling `onClick` without this fix the output will be:
> called
> called
> foo

With this fix:
> called
> foo

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-12 13:34:11 +01:00