mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
fix(trashbin): make sure the trashed files are deleted if we don't have any available space left
Logic taken from the files_versions expiration. It seems the second argument from the isExpired method wasn't even used anywhere. Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
parent
65f52c47b8
commit
195d347240
1 changed files with 4 additions and 3 deletions
|
|
@ -844,7 +844,7 @@ class Trashbin implements IEventListener {
|
||||||
$dirContent = Helper::getTrashFiles('/', $user, 'mtime');
|
$dirContent = Helper::getTrashFiles('/', $user, 'mtime');
|
||||||
|
|
||||||
// delete all files older then $retention_obligation
|
// delete all files older then $retention_obligation
|
||||||
[$delSize, $count] = self::deleteExpiredFiles($dirContent, $user);
|
[$delSize, $count] = self::deleteExpiredFiles($dirContent, $user, $availableSpace <= 0);
|
||||||
|
|
||||||
$availableSpace += $delSize;
|
$availableSpace += $delSize;
|
||||||
|
|
||||||
|
|
@ -906,9 +906,10 @@ class Trashbin implements IEventListener {
|
||||||
*
|
*
|
||||||
* @param array $files list of files sorted by mtime
|
* @param array $files list of files sorted by mtime
|
||||||
* @param string $user
|
* @param string $user
|
||||||
|
* @param bool $quotaExceeded
|
||||||
* @return array{int|float, int} size of deleted files and number of deleted files
|
* @return array{int|float, int} size of deleted files and number of deleted files
|
||||||
*/
|
*/
|
||||||
public static function deleteExpiredFiles($files, $user) {
|
public static function deleteExpiredFiles($files, $user, bool $quotaExceeded = false) {
|
||||||
/** @var Expiration $expiration */
|
/** @var Expiration $expiration */
|
||||||
$expiration = Server::get(Expiration::class);
|
$expiration = Server::get(Expiration::class);
|
||||||
$size = 0;
|
$size = 0;
|
||||||
|
|
@ -916,7 +917,7 @@ class Trashbin implements IEventListener {
|
||||||
foreach ($files as $file) {
|
foreach ($files as $file) {
|
||||||
$timestamp = $file['mtime'];
|
$timestamp = $file['mtime'];
|
||||||
$filename = $file['name'];
|
$filename = $file['name'];
|
||||||
if ($expiration->isExpired($timestamp)) {
|
if ($expiration->isExpired($timestamp, $quotaExceeded)) {
|
||||||
try {
|
try {
|
||||||
$size += self::delete($filename, $user, $timestamp);
|
$size += self::delete($filename, $user, $timestamp);
|
||||||
$count++;
|
$count++;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue