diff options
author | Bjoern Schiessle <schiessle@owncloud.com> | 2014-07-04 12:06:23 +0200 |
---|---|---|
committer | Bjoern Schiessle <schiessle@owncloud.com> | 2014-07-04 12:19:59 +0200 |
commit | 673b0f5eb93492067a1e8560792d7a3509baa309 (patch) | |
tree | dc413dfa91fde51ea3b5c8e2ad5bde81d9906cce /apps/files_encryption | |
parent | e9f573086915f6d0b86e5c57e1a2b627589f1fb6 (diff) | |
download | nextcloud-server-673b0f5eb93492067a1e8560792d7a3509baa309.tar.gz nextcloud-server-673b0f5eb93492067a1e8560792d7a3509baa309.zip |
add owner as parameter for delShareKey
Diffstat (limited to 'apps/files_encryption')
-rw-r--r-- | apps/files_encryption/hooks/hooks.php | 12 | ||||
-rwxr-xr-x | apps/files_encryption/lib/keymanager.php | 13 | ||||
-rw-r--r-- | apps/files_encryption/tests/keymanager.php | 4 |
3 files changed, 18 insertions, 11 deletions
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php index 7303cd080e5..d4a98410a37 100644 --- a/apps/files_encryption/hooks/hooks.php +++ b/apps/files_encryption/hooks/hooks.php @@ -340,7 +340,7 @@ class Hooks { }
/**
- * @brief
+ * unshare file/folder from a user with whom you shared the file before
*/
public static function postUnshare($params) {
@@ -385,8 +385,10 @@ class Hooks { // Unshare every user who no longer has access to the file
$delUsers = array_diff($userIds, $sharingUsers);
+ list($owner, $ownerPath) = $util->getUidAndFilename($path);
+
// delete share key
- Keymanager::delShareKey($view, $delUsers, $path);
+ Keymanager::delShareKey($view, $delUsers, $ownerPath, $owner);
}
}
@@ -595,6 +597,7 @@ class Hooks { }
/**
+ * unmount file from yourself
* remember files/folders which get unmounted
*/
public static function preUmount($params) {
@@ -613,6 +616,9 @@ class Hooks { 'itemType' => $itemType);
}
+ /**
+ * unmount file from yourself
+ */
public static function postUmount($params) {
if (!isset(self::$umountedFiles[$params[\OC\Files\Filesystem::signal_param_path]])) {
@@ -642,7 +648,7 @@ class Hooks { // check if the user still has access to the file, otherwise delete share key
$sharingUsers = \OCP\Share::getUsersSharingFile($path, $user);
if (!in_array(\OCP\User::getUser(), $sharingUsers['users'])) {
- Keymanager::delShareKey($view, array(\OCP\User::getUser()), $path);
+ Keymanager::delShareKey($view, array(\OCP\User::getUser()), $path, $user);
}
}
}
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php index 70820a6f940..da84e975a05 100755 --- a/apps/files_encryption/lib/keymanager.php +++ b/apps/files_encryption/lib/keymanager.php @@ -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); diff --git a/apps/files_encryption/tests/keymanager.php b/apps/files_encryption/tests/keymanager.php index eb7583650a8..e779f8341e6 100644 --- a/apps/files_encryption/tests/keymanager.php +++ b/apps/files_encryption/tests/keymanager.php @@ -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( |