]> source.dussan.org Git - nextcloud-server.git/commitdiff
add owner as parameter for delShareKey
authorBjoern Schiessle <schiessle@owncloud.com>
Fri, 4 Jul 2014 10:06:23 +0000 (12:06 +0200)
committerBjoern Schiessle <schiessle@owncloud.com>
Fri, 4 Jul 2014 10:19:59 +0000 (12:19 +0200)
apps/files_encryption/hooks/hooks.php
apps/files_encryption/lib/keymanager.php
apps/files_encryption/tests/keymanager.php

index 7303cd080e5e76aadca5d190ea8a9b5cd1769c19..d4a98410a37cbf474349c6d7a69673c538e4c7f3 100644 (file)
@@ -340,7 +340,7 @@ class Hooks {
        }\r
 \r
        /**\r
-        * @brief\r
+        * unshare file/folder from a user with whom you shared the file before\r
         */\r
        public static function postUnshare($params) {\r
 \r
@@ -385,8 +385,10 @@ class Hooks {
                                // Unshare every user who no longer has access to the file\r
                                $delUsers = array_diff($userIds, $sharingUsers);\r
 \r
+                               list($owner, $ownerPath) = $util->getUidAndFilename($path);\r
+\r
                                // delete share key\r
-                               Keymanager::delShareKey($view, $delUsers, $path);\r
+                               Keymanager::delShareKey($view, $delUsers, $ownerPath, $owner);\r
                        }\r
 \r
                }\r
@@ -595,6 +597,7 @@ class Hooks {
        }\r
 \r
        /**\r
+        * unmount file from yourself\r
         * remember files/folders which get unmounted\r
         */\r
        public static function preUmount($params) {\r
@@ -613,6 +616,9 @@ class Hooks {
                        'itemType' => $itemType);\r
        }\r
 \r
+       /**\r
+        * unmount file from yourself\r
+        */\r
        public static function postUmount($params) {\r
 \r
                if (!isset(self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]])) {\r
@@ -642,7 +648,7 @@ class Hooks {
                        // check if the user still has access to the file, otherwise delete share key\r
                        $sharingUsers = \OCP\Share::getUsersSharingFile($path, $user);\r
                        if (!in_array(\OCP\User::getUser(), $sharingUsers['users'])) {\r
-                               Keymanager::delShareKey($view, array(\OCP\User::getUser()), $path);\r
+                               Keymanager::delShareKey($view, array(\OCP\User::getUser()), $path, $user);\r
                        }\r
                }\r
        }\r
index 70820a6f940f0f668ff3e56a4a7ae369226be94c..da84e975a05db85247983f2addbefe977093e47b 100755 (executable)
@@ -444,17 +444,18 @@ class Keymanager {
 
        /**
         * Delete a single user's shareKey for a single file
+        *
+        * @param \OC\Files\View $view relative to data/
+        * @param array $userIds list of users we want to remove
+        * @param string $filename the owners name of the file for which we want to remove the users relative to data/user/files
+        * @param string $owner owner of the file
         */
-       public static function delShareKey(\OC\Files\View $view, $userIds, $filePath) {
+       public static function delShareKey($view, $userIds, $filename, $owner) {
 
                $proxyStatus = \OC_FileProxy::$enabled;
                \OC_FileProxy::$enabled = false;
 
-               $userId = Helper::getUser($filePath);
-
-               $util = new Util($view, $userId);
-
-               list($owner, $filename) = $util->getUidAndFilename($filePath);
+               $util = new Util($view, $owner);
 
                if ($util->isSystemWideMountPoint($filename)) {
                        $shareKeyPath = \OC\Files\Filesystem::normalizePath('/files_encryption/share-keys/' . $filename);
index eb7583650a809dda116cf07fcbf4c145fb50f221..e779f8341e6d48395ca75c2ae35e3417d5080dc3 100644 (file)
@@ -225,7 +225,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
                $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/subfolder/subsubfolder/file2.user3.shareKey', 'data');
 
                // recursive delete share keys from user1 and user2
-               Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/');
+               Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/', Test_Encryption_Keymanager::TEST_USER);
 
                // check if share keys from user1 and user2 are deleted
                $this->assertFalse($this->view->file_exists(
@@ -274,7 +274,7 @@ class Test_Encryption_Keymanager extends \PHPUnit_Framework_TestCase {
                $this->view->file_put_contents('/'.Test_Encryption_Keymanager::TEST_USER.'/files_encryption/share-keys/folder1/existingFile.txt.' . Test_Encryption_Keymanager::TEST_USER . '.shareKey', 'data');
 
                // recursive delete share keys from user1 and user2
-               Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/existingFile.txt');
+               Encryption\Keymanager::delShareKey($this->view, array('user1', 'user2', Test_Encryption_Keymanager::TEST_USER), '/folder1/existingFile.txt', Test_Encryption_Keymanager::TEST_USER);
 
                // check if share keys from user1 and user2 are deleted
                $this->assertFalse($this->view->file_exists(