From 4b5a662e09e1f1d0b7885b546e7b278fe263be34 Mon Sep 17 00:00:00 2001 From: Björn Schießle Date: Wed, 20 Feb 2013 17:58:04 +0100 Subject: delete keyfiles if file in trash bin gets deleted permanently --- apps/files_trashbin/lib/trash.php | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) (limited to 'apps/files_trashbin') diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index cde388015e5..5c0cf36f5b3 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -83,10 +83,14 @@ class Trashbin { } // Take care of encryption keys - $keyfile = \OC_Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path.'.key'); - if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { - $trashbinSize += $view->filesize($keyfile); - $view->rename($keyfile, 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp); + $keyfile = \OC_Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path); + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile.'.key') ) { + if ( $view->is_dir('files'.$file_path) ) { + $trashbinSize -= self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile)); + } else { + $trashbinSize += $view->filesize($keyfile.'.key'); + } + $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp); } } else { @@ -190,7 +194,7 @@ class Trashbin { } // Take care of encryption keys - $keyfile = 'files_trashbin/keyfiles/'.$file; + $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file); if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { if ( $result[0]['type'] == 'dir' ) { $trashbinSize -= self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile)); @@ -252,6 +256,17 @@ class Trashbin { } } } + } + + // Take care of encryption keys + $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file); + if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) { + if ( $result[0]['type'] == 'dir' ) { + $size += self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile)); + } else { + $size += $view->filesize($keyfile); + } + $view->unlink($keyfile); } if ($view->is_dir('/files_trashbin/files/'.$file)) { -- cgit v1.2.3