Commit Graph

102 Commits

Author SHA1 Message Date
Côme Chilliet b37044d484 chore: Fix psalm issues following strong typing of IUser
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-11 09:45:32 +02:00
Côme Chilliet 9c92cc1617 chore: Suppress last known impure static properties
We will keep these legacy ones for now. We can search for the
 ImpureStaticProperty suppression and add special treatement for them in
 the frankenphp PR if needed.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:20 +02:00
Côme Chilliet 3659b13cd2 chore(files_versions): Be extra-cautious to please psalm
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:19 +02:00
Côme Chilliet 54be8ca769 chore: Remove dead code detected by psalm
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:19 +02:00
Côme Chilliet 9d7c277668 fix: Remove static vars in trashbin, versions and storages
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-02 09:46:16 +02:00
Ferdinand Thiessen f8f5e9e7f9 Merge pull request #59610 from nextcloud/feat/versions-wfe
feat(files_versions): allow to block version creation using WFE
2026-06-01 18:05:23 +02:00
Côme Chilliet 1ab09ec753 chore: Apply new coding standard to all files
The diff can be checked using: git diff --ignore-all-space --ignore-blank-lines
To see only the changes not related to blank lines.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-06-01 13:46:39 +02:00
Ferdinand Thiessen 6ee67884a4 fix(files_version): dispatch CreateVersionEvent as typed event
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-05-27 10:46:40 +02:00
provokateurin 5f4a5d8c67 refactor(Files): Remove deprecated streamCopy method
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-02-17 06:43:16 +01:00
Git'Fellow f8b1dd6045 fix(files_versions): Add user to error message
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2025-11-04 17:50:18 +01:00
Robin Appelman aa15f9d16d chore: run rector
Signed-off-by: Robin Appelman <robin@icewind.nl>
2025-07-01 22:45:52 +02:00
Ferdinand Thiessen 5981b7eb51 chore: apply new CSFixer rules
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>

# Conflicts:
#	apps/settings/lib/SetupChecks/PhpOpcacheSetup.php
2025-07-01 16:26:50 +02:00
Ferdinand Thiessen 2dcadd2603 fix(files_versions): only close stream if still open, fixing S3
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-18 16:48:56 +02:00
Ferdinand Thiessen 0f69648d0a fix(files_version): use Storage::writeStream instead of deprecated streamCopy if possible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 17:28:24 +02:00
Ferdinand Thiessen 01db539d0a chore: move streamCopy implementation from OC_Helper to OCP\Files
The function was already there but called the legacy version.
So moved the implementation and migrated all usages of it.
Sadly the interface was slightly different so adjusted it to be
compatible with both legacy and the OCP one.

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2025-05-16 13:03:05 +02:00
Louis Chemineau 4561a0a870 fix(files_versions): Do not expire versions newer than min age
The auto expire logic does not take into account the min retention age set by the admin. So versions were eagerly deleted.

Fix https://github.com/nextcloud/server/issues/19791

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-02-19 12:25:09 +01:00
Côme Chilliet 64863c9d46 chore: Apply new rector configuration to apps folder
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2025-02-13 11:46:42 +01:00
Louis Chemineau c87db7a960 fix(files_versions): Update unencrypted_size during rollback
This prevent restored version of encrypted files from having a wrong reported size. This was blocking download.

Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-01-28 15:28:34 +01:00
Louis Chemineau 5336c92ca5 chore(files_versions): Remove unused $node variable
Signed-off-by: Louis Chemineau <louis@chmn.me>
2025-01-28 15:28:34 +01:00
provokateurin 381077028a refactor(apps): Use constructor property promotion when possible
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-10-21 12:37:59 +02:00
Côme Chilliet 1580c8612b chore(apps): Apply new rector configuration to autouse classes
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2024-10-15 10:40:25 +02:00
provokateurin 9836e9b164 chore(deps): Update nextcloud/coding-standard to v1.3.1
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-09-19 14:21:20 +02:00
Daniel Kesselberg af6de04e9e style: update codestyle for coding-standard 1.2.3
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2024-08-25 19:34:58 +02:00
greta 26d22881e5 fix: add a try and catch for delete versioning
Signed-off-by: greta <gretadoci@gmail.com>
2024-07-25 14:46:06 +02:00
carhe 7eac3fe7da fix(files_versions): avoid unintentional skipping of expiration
Signed-off-by: carhe <carstenherrmann@web.de>
2024-07-25 12:29:04 +02:00
Andy Scherzinger afa48a4e0e chore: Add SPDX header
Signed-off-by: Andy Scherzinger <info@andy-scherzinger.de>
2024-06-02 20:00:00 +02:00
Louis Chemineau 9361a305ba chore(files_versions): Use new metadata API for versions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2024-03-13 15:27:06 +01:00
Robin Appelman e7a7b4a401 perf: switch places that always use the first getById result to getFirstNodeById
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-03-04 13:57:31 +01:00
Robin Appelman 6fbf22ef5e handle storage not available when expiring versions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2024-01-24 10:49:38 +01:00
Joas Schilling aa5f037af7 chore: apply changes from Nextcloud coding standards 1.1.1
Signed-off-by: Joas Schilling <coding@schilljs.com>
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2023-11-23 10:36:13 +01:00
Git'Fellow ffeef99abc fix: Delete ghost versions of non-existing files
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-10-28 14:47:19 +02:00
Louis Chemineau cec0b310a5 Move module versions management logic out of main logic
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-09-07 15:47:59 +02:00
Julius Härtl bbb7172220 fix: Also cleanup version metadata if expiring
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-08-14 19:31:41 +02:00
Louis Chemineau c3475f4dbb Fix initialisation of versions in the DB
Broken after https://github.com/nextcloud/server/pull/36690

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-05-25 23:43:40 +02:00
Git'Fellow d6eb48c436 Check if version has entity before trying to access it
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-12 16:00:16 +02:00
Git'Fellow 7cd5cbe6e9 Check if version entity is not null before delete
Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com>
2023-05-08 14:24:58 +02:00
Max 337fc110ec fix: catch ManuallyLockedException and use app context
The files_lock app may throw ManuallyLockedExceptions
when attempting to revert a file that is currently opened.
This would prevent the user from rolling back a opened file.

Text and Richdocuments handle changes of the file while editing.
Allow reverting files even when they are locked by these apps
and let the apps handle the conflict.

Signed-off-by: Max <max@nextcloud.com>
2023-05-03 09:52:36 +02:00
Côme Chilliet 60b7d2117e Merge pull request #37428 from nextcloud/enh/ignore-non-numeric-versions
Ignore and log non integer versions
2023-04-20 13:33:58 +02:00
Côme Chilliet a6b1d990a4 Check for non-numeric versions, not non-integer
All versions are string

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 17:50:45 +02:00
Côme Chilliet 8cc8765089 Ignore and log non integer versions
This avoids being stuck when there is one buggy file version with a
 non-integer version. It allows the expiration process to not crash and
 continue with the other ones.

Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2023-04-05 17:44:14 +02:00
Julius Härtl cf46bd6915 fix: Make sure that rollback hook is triggered on all version backends
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2023-03-13 10:52:35 +01:00
Louis Chemineau 21cd3b0e0d Handle empty DB while expiring versions
Version on the FS can have no equivalent in the DB if they were created before the version naming feature. This makes sure that we catch the resulting exception and proceed as usual.

Fix https://github.com/nextcloud/server/issues/36541

Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-02-08 13:56:49 +00:00
Louis Chemineau ad469969bf Prevent expiration of named versions
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-01-26 10:12:23 +00:00
Louis Chemineau 6a2f8bc599 Allow to delete a version through DAV
Signed-off-by: Louis Chemineau <louis@chmn.me>
2023-01-26 10:12:23 +00:00
Côme Chilliet 53cb5b8d07 Handle badly named version files more gracefully and log information
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2022-10-11 10:10:49 +02:00
Robin Appelman 9587a4a548 use filesystem user instead of file owner for creating version
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-09-09 16:22:40 +02:00
Robin Appelman 7be5788995 always use the default fs owner when storing versions
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-09-06 16:59:48 +02:00
Robin Appelman d5953e5c33 cache internalpath in versions cleanup
Signed-off-by: Robin Appelman <robin@icewind.nl>
2022-04-04 15:40:34 +02:00
Robin Appelman 5f101d910b use search to find versions to expire
Signed-off-by: Robin Appelman <robin@icewind.nl>
2021-08-18 16:52:22 +02:00
Carl Schwan 701b57b81d Remove allmost all deprecation from the files_version app
The remaining deprecations are related to Utils::hooks and I will take a
look at how EventDispatcher works before working on them.

Aside from the deprecations, this patch also does a few minor
improvements around type hinting.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-07-23 10:07:38 +02:00