From: Bjoern Schiessle Date: Fri, 28 Nov 2014 16:53:21 +0000 (+0100) Subject: delete old keys if file was moved to a different mount point X-Git-Tag: v8.0.0alpha1~188^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=2e78217f17fb0c387baeda737b4206130dc00130;p=nextcloud-server.git delete old keys if file was moved to a different mount point --- diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index e9d0235d167..53fec11009d 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -432,15 +432,18 @@ class Hooks { $mp1 = $view->getMountPoint('/' . $user . '/files/' . $params['oldpath']); $mp2 = $view->getMountPoint('/' . $user . '/files/' . $params['newpath']); - if ($mp1 === $mp2) { - - $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']); + $oldKeysPath = Keymanager::getKeyPath($view, $util, $params['oldpath']); + if ($mp1 === $mp2) { self::$renamedFiles[$params['oldpath']] = array( 'operation' => $operation, 'oldKeysPath' => $oldKeysPath, ); - + } else { + self::$renamedFiles[$params['oldpath']] = array( + 'operation' => 'cleanup', + 'oldKeysPath' => $oldKeysPath, + ); } } @@ -464,6 +467,9 @@ class Hooks { $operation = self::$renamedFiles[$params['oldpath']]['operation']; $oldKeysPath = self::$renamedFiles[$params['oldpath']]['oldKeysPath']; unset(self::$renamedFiles[$params['oldpath']]); + if ($operation === 'cleanup') { + return $view->unlink($oldKeysPath); + } } else { \OCP\Util::writeLog('Encryption library', "can't get path and owner from the file before it was renamed", \OCP\Util::DEBUG); return false;