]> source.dussan.org Git - nextcloud-server.git/commitdiff
some fixes for the keyfile handling
authorBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 21:17:04 +0000 (22:17 +0100)
committerBjörn Schießle <schiessle@owncloud.com>
Wed, 20 Feb 2013 21:17:04 +0000 (22:17 +0100)
apps/files_trashbin/lib/trash.php

index 4d230449b59d1a009d17b88ced4052102f96c882..f11e5c4cbfdf816f07a4feec0d41aa8b1d8944ce 100644 (file)
@@ -69,7 +69,7 @@ class Trashbin {
                                return;
                        }\r
                        
-                       // Take core of file versions\r
+                       // Take care of file versions\r
                        if ( \OCP\App::isEnabled('files_versions') ) {\r
                                if ( $view->is_dir('files_versions'.$file_path) ) {
                                        $trashbinSize += self::calculateSize(new \OC_FilesystemView('/'. $user.'/files_versions/'.$file_path));\r
@@ -86,11 +86,12 @@ class Trashbin {
                        $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));
+                                       $trashbinSize += self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile));
+                                       $view->rename($keyfile, 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp);
                                } else {\r
                                        $trashbinSize += $view->filesize($keyfile.'.key');
+                                       $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.key.d'.$timestamp);
                                }\r
-                               $view->rename($keyfile.'.key', 'files_trashbin/keyfiles/'. $deleted.'.d'.$timestamp);\r
                        }
 
                } else {
@@ -149,7 +150,7 @@ class Trashbin {
                                $location = '';\r
                        }
                } else {
-                       $path_parts = pathinfo($filename);
+                       $path_parts = pathinfo($file);
                        $result[] = array(
                                        'location' => $path_parts['dirname'],
                                        'type' => $view->is_dir('/files_trashbin/files/'.$file) ? 'dir' : 'files',
@@ -193,15 +194,24 @@ class Trashbin {
                                }\r
                        }
                        
-                       // Take care of encryption keys
-                       $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file);\r
+                       // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!)
+                       $parts = pathinfo($file);
+                       if ( $result[0]['type'] == 'dir' ) {
+                               $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename);
+                       } else {
+                               $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$parts['dirname'].'/'.$filename.'.key');
+                       }
+                       if ($timestamp) {
+                               $keyfile .= '.d'.$timestamp;
+                       }\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));
+                                       $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename);
                                } else {
                                        $trashbinSize -= $view->filesize($keyfile);
+                                       $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename.'.key');
                                }\r
-                               $view->rename($keyfile, 'files_encryption/keyfiles/'. $location.'/'.$filename.'.key');\r
                        }
                        
                        if ( $timestamp ) {
@@ -258,10 +268,18 @@ class Trashbin {
                        }
                }
                
-               // Take care of encryption keys\r
-               $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$file);\r
+               // Take care of encryption keys
+               $parts = pathinfo($file);\r
+               if ( $view->is_dir('/files_trashbin/files/'.$file) ) {\r
+                       $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename);\r
+               } else {\r
+                       $keyfile = \OC_Filesystem::normalizePath('files_trashbin/keyfiles/'.$filename.'.key');\r
+               }\r
+               if ($timestamp) {\r
+                       $keyfile .= '.d'.$timestamp;\r
+               }\r
                if ( \OCP\App::isEnabled('files_encryption') && $view->file_exists($keyfile) ) {\r
-                       if ( $result[0]['type'] == 'dir' ) {\r
+                       if ( $view->is_dir($keyfile) ) {\r
                                $size += self::calculateSize(new \OC_FilesystemView('/'.$user.'/'.$keyfile));\r
                        } else {\r
                                $size += $view->filesize($keyfile);\r