]> source.dussan.org Git - nextcloud-server.git/commitdiff
delete keyfiles if file in trash bin gets deleted permanently
authorBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 16:58:04 +0000 (17:58 +0100)
committerBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 16:58:04 +0000 (17:58 +0100)
apps/files_trashbin/lib/trash.php

index cde388015e57a984d0c90f8ff6f6142d044eb44f..5c0cf36f5b35587f2a3690dc33fa4c22932181c0 100644 (file)
@@ -83,10 +83,14 @@ class Trashbin {
                        }
                        
                        // Take care of encryption keys
-                       $keyfile = \OC_Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path.'.key');\r
-                       if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) {\r
-                               $trashbinSize += $view->filesize($keyfile);\r
-                               $view->rename($keyfile, 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp);\r
+                       $keyfile = \OC_Filesystem::normalizePath('files_encryption/keyfiles/'.$file_path);\r
+                       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 {\r
+                                       $trashbinSize += $view->filesize($keyfile.'.key');
+                               }\r
+                               $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp);\r
                        }
 
                } else {
@@ -190,7 +194,7 @@ class Trashbin {
                        }
                        
                        // Take care of encryption keys
-                       $keyfile = 'files_trashbin/keyfiles/'.$file;\r
+                       $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file);\r
                        if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) {
                                if ( $result[0]['type'] == 'dir' ) {\r
                                        $trashbinSize -= self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile));
@@ -252,6 +256,17 @@ class Trashbin {
                                        }
                                }
                        }
+               }
+               
+               // Take care of encryption keys\r
+               $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file);\r
+               if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) {\r
+                       if ( $result[0]['type'] == 'dir' ) {\r
+                               $size += self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile));\r
+                       } else {\r
+                               $size += $view->filesize($keyfile);\r
+                       }\r
+                       $view->unlink($keyfile);\r
                }\r
        
                if ($view->is_dir('/files_trashbin/files/'.$file)) {