Commit Graph

57 Commits

Author SHA1 Message Date
Christoph Wurst
d89a75be0b Update all license headers for Nextcloud 21
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-12-16 18:48:22 +01:00
Joas Schilling
8027dcbc6f Don't leave cursors open when tests fail
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-09 12:28:17 +01:00
Joas Schilling
e52925c5fb Use query builder instead of OC_DB in trashbin
Signed-off-by: Joas Schilling <coding@schilljs.com>
2020-11-06 22:33:59 +01:00
Julius Härtl
2616a784c9 Restrict query when searching for versions of trashbin files
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-10-14 16:38:30 +02:00
Robin Appelman
e0d688c365 dont hold a transaction during the move to trash
because moving to trash can take a long time, keeping a transaction active for the duration can lead to issues

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-09-30 14:30:54 +02:00
Julius Härtl
3c47aaa2b1 Delete files that exceed trashbin size immediately
Signed-off-by: Julius Härtl <jus@bitgrid.net>
2020-09-23 16:58:18 +02:00
Christoph Wurst
1f7f93a695 Update license headers for Nextcloud 20 (again)
There are still lots of outdated headers, so time for another round of
updates.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-09-07 14:37:44 +02:00
Daniel Kesselberg
2513b64602 Change free space calculation
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2020-08-31 23:11:10 +02:00
blizzz
a3d30bf4a2 Merge pull request #21954 from nextcloud/techdebt/noid/bootstrap-files_trashbin
Use IBootstrap for the files_trashbin app
2020-08-07 11:12:09 +00:00
Robin Appelman
c2c9a6a0e1 fix object store trashbin handling
object stores are "special" given how they interact with the cache on their own

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-30 16:31:56 +02:00
Morris Jobke
e84504c4d6 Use IBootstrap for the files_trashbin app
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2020-07-23 22:03:14 +02:00
Robin Appelman
fcad692b4a rollback cache rename if trashbin move fails
Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-23 15:24:48 +02:00
Robin Appelman
5949849322 fix moving files from external storage to object store trashbin
having the "cache rename" after the "storage move" caused the target
to get the fileid from the source file, without taking care that the object
is stored under the original file id.

By doing the "cache rename" first, we trigger the "update existing file"
logic while moving the file to the object store and the object gets stored for the
correct file id

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-23 15:24:44 +02:00
Robin Appelman
050e2fe346 allow admin to configure the max trashbin size
this allows an admin to configure the max trashbin size instead of always relying on the users quota.

The trashbin size can be configured using the `occ trash:size` command and can be set both globally and per-user

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-07-07 14:45:08 +02:00
Robin Appelman
614acc9419 add locking to resolve concurent move to trashbin conflicts
uses a lock to prevent two requests from moving a file to the trashbin concurrently
(causing sql duplicate key errors)

Signed-off-by: Robin Appelman <robin@icewind.nl>
2020-05-06 20:36:55 +02:00
Christoph Wurst
28f8eb5dba Add visibility to all constants
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 16:54:27 +02:00
Christoph Wurst
caff1023ea Format control structures, classes, methods and function
To continue this formatting madness, here's a tiny patch that adds
unified formatting for control structures like if and loops as well as
classes, their methods and anonymous functions. This basically forces
the constructs to start on the same line. This is not exactly what PSR2
wants, but I think we can have a few exceptions with "our" style. The
starting of braces on the same line is pracrically standard for our
code.

This also removes and empty lines from method/function bodies at the
beginning and end.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 14:19:56 +02:00
Christoph Wurst
14c996d982 Use elseif instead of else if
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-10 10:35:09 +02:00
Christoph Wurst
afbd9c4e6e Unify function spacing to PSR2 recommendation
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-04-09 13:54:22 +02:00
Christoph Wurst
b80ebc9674 Use the short array syntax, everywhere
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2020-03-26 16:34:56 +01:00
Christoph Wurst
5bf3d1bb38 Update license headers
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-12-05 15:38:45 +01:00
Robin Appelman
964dc0a955 set retention obligation on existing expiration in tests
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-11-04 16:54:22 +01:00
Christoph Wurst
543190f8b3 Do not create Application instances directly
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
2019-10-11 08:33:09 +02:00
Robin Appelman
9bf8ee701f Update apps/files_trashbin/lib/Trashbin.php
Co-Authored-By: Morris Jobke <hey@morrisjobke.de>
2019-09-04 13:06:07 +02:00
Robin Appelman
fafce34aa0 dont try to copy trash items to user if the user has not enough free space
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-07-29 14:05:49 +02:00
Robin Appelman
62a969f056 dont try to restore a trashbin item to a readonly target
Signed-off-by: Robin Appelman <robin@icewind.nl>
2019-03-14 16:18:43 +01:00
Morris Jobke
4704e719ed Only fetch size of this storage without mount points - ref #14412
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-01 12:05:18 +01:00
Morris Jobke
f6967a974f Revert "Fix for issue 10862: calculation of free space ignores external storage (doesn't count towards quota)"
This reverts commit e806aa658c.

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2019-03-01 12:03:33 +01:00
Felix Nieuwenhuizen
e806aa658c Fix for issue 10862: calculation of free space ignores external storage (doesn't count towards quota)
Signed-off-by: Felix Nieuwenhuizen <felix@tdlrali.com>
2019-01-26 17:23:23 +01:00
Robin Appelman
4adac445dc fix select statement
fix select statement
Make trashbin api modules

Apps can register trashbin backends for specific storages,
allowing them to modify trashbin behavior for storages

The old trashbin implementation has been wrapped in a "legacy" backend,
for future work this can be replaced with a new backend that better handles
shares while still keeping the legacy backend around to keep existing trash
from being accessible

Signed-off-by: Robin Appelman <robin@icewind.nl>
2018-10-17 14:56:45 +02:00
Lars Knickrehm
436c4f8954 Improved logging statement 2018-06-24 13:41:16 +02:00
Lars Knickrehm
e360885eb0 Workaround for interrupting expired files deletion
Workaround avoiding "Error while running background job (class: OCA\Files_Trashbin\BackgroundJob\ExpireTrash, arguments: ): {"Exception":"OCP\\Files\\NotPermittedException","Message":"","Code":0,"Trace":"#0 \/var\/www\/cloud\/apps\/files_trashbin\/lib\/Trashbin.php(590): OC\\Files\\Node\\File->delete() [...]"
2018-05-28 00:59:20 +02:00
Morris Jobke
dd34cb7540 Less deprecated calls to OCP\Util::writeLog
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-04-22 20:41:49 +02:00
Roeland Jago Douma
83873e3da1 Remove deprecated URL functions for OCP\Util
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2018-03-13 22:04:08 +01:00
Morris Jobke
a661f043e1 Remove unneeded semicolon and parentheses
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 23:46:40 +01:00
Morris Jobke
c005fc6755 Cleanup unused code
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2018-01-26 15:25:19 +01:00
Morris Jobke
31c5c2a592 Change @georgehrke's email
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 20:38:59 +01:00
Morris Jobke
0eebff152a Update license headers
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-11-06 16:56:19 +01:00
Joas Schilling
d703744d4a Fix comparisions in the trashbin app
Signed-off-by: Joas Schilling <coding@schilljs.com>
2017-08-01 13:56:12 +02:00
Roeland Jago Douma
549845aa73 Delete trash using node API to trigger preview deletion
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
2017-07-24 11:14:12 +02:00
Morris Jobke
b4fa812a3d Improve logging of trash bin inconsistencies
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-06-23 16:09:00 -05:00
Morris Jobke
1729e4471f Update comments to Nextcloud
* based on PR by @Ardinis
* see #4311

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-04-11 23:16:27 -05:00
Juan Pablo Villafáñez
713faa0fc0 Use the expected method depending on the target being a file or folder
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-03-22 18:02:09 -06:00
Morris Jobke
a4ad8af6e3 Add proper default value for datadir
* better safe than sorry
* fixes #3091

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
2017-01-19 19:49:41 -06:00
Roeland Jago Douma
6f96af0fce Merge pull request #2819 from nextcloud/trash-ext-link-uselinkowner
Fallback to share link owner when no owner found
2016-12-23 14:36:34 +01:00
Vincent Petry
34d466b2f6 Fallback to share link owner when no owner found
When creating link shares from external storage, the filesystem cannot
find an owner in some scenarios (ex: system-wide mounts). In such
cases, fall back to using the current user's trashbin which happens to
also be the user who created the link share.

Fixes an issue where this scenario made deletion impossible due to
missing user information.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
2016-12-22 10:48:32 +01:00
Bjoern Schiessle
0e4eeab3c1 add a copy to the owners trash bin if another user moves a file out of a shared folder
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
2016-12-21 17:28:47 +01:00
Steven Bühner
1bd4eebb26 Also fire a bulk pre- and post-delete hook 2016-09-20 12:07:03 +02:00
Steven Bühner
2b37dc9c9e Always use the same relative Path (Starting from users home dir. i.e.: "/files_trashbin/...") 2016-09-20 12:07:00 +02:00
Steven Bühner
55fe036dbf Take the same path (with /USERNAME/ as base) for every emmited hooks 2016-09-20 12:06:56 +02:00