]> source.dussan.org Git - nextcloud-server.git/commitdiff
restore filekeys from trash bin
authorBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 14:14:32 +0000 (15:14 +0100)
committerBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 14:14:32 +0000 (15:14 +0100)
apps/files_trashbin/lib/trash.php

index b54805c63e598301e7db9c042d5733e9b36fb1b4..cde388015e57a984d0c90f8ff6f6142d044eb44f 100644 (file)
@@ -82,10 +82,11 @@ class Trashbin {
                                }\r
                        }
                        
-                       // Take care of encryption keys\r
-                       if ( \OCP\App::isEnabled('files_encryption') ) {\r
-                               $trashbinSize += self::calculateSize(new \OC_FilesystemView('/'. $user.'/files_encryption/keyfiles/'.$file_path));\r
-                               $view->rename('files_encryption'.$file_path, 'files_trashbin/keyfiles'. $deleted.'.d'.$timestamp);\r
+                       // 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
                        }
 
                } else {
@@ -187,7 +188,18 @@ class Trashbin {
                                        }\r
                                }\r
                        }
-
+                       
+                       // Take care of encryption keys
+                       $keyfile = '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));
+                               } else {
+                                       $trashbinSize -= $view->filesize($keyfile);
+                               }\r
+                               $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename.'.key');\r
+                       }
+                       
                        if ( $timestamp ) {
                                $query = \OC_DB::prepare('DELETE FROM *PREFIX*files_trash WHERE user=? AND id=? AND timestamp=?');\r
                                $query->execute(array($user,$filename,$timestamp));