From f6ac34afea6c1f68f53e0e7a076b0b274559fd8b Mon Sep 17 00:00:00 2001
From: Florin Peter <github@florin-peter.de>
Date: Mon, 22 Apr 2013 12:25:55 +0200
Subject: [PATCH] improved handling for getSharingUsersArray

---
 apps/files_encryption/lib/proxy.php  |  2 +-
 apps/files_encryption/lib/stream.php | 10 +++-------
 apps/files_encryption/lib/util.php   |  9 +++++++--
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 505fad440d..bc6280ff61 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -134,7 +134,7 @@ class Proxy extends \OC_FileProxy {
 				
 				$sharingEnabled = \OCP\Share::isEnabled();
 				
-				$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath );
+				$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $filePath, $userId );
 				
 				// Fetch public keys for all users who will share the file
 				$publicKeys = Keymanager::getPublicKeys( $rootView, $uniqueUserIds );
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index c12fab783b..6fb95934c3 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -335,14 +335,10 @@ class Stream {
 		
 		$util = new Util( $this->rootView, $this->userId );
 		
-		// Get all users sharing the file
-		$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath );
+		// Get all users sharing the file includes current user
+		$uniqueUserIds = $util->getSharingUsersArray( $sharingEnabled, $this->relPath, $this->userId);
 
-        // allways add current user
-        $uniqueUserIds[] = $this->userId;
-        array_unique( $uniqueUserIds );
-
-		// Fetch public keys for all sharing users
+        // Fetch public keys for all sharing users
 		$publicKeys = Keymanager::getPublicKeys( $this->rootView, $uniqueUserIds );
 
         // Encrypt enc key for all sharing users
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index b3df7f0db0..e69314e099 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -848,7 +848,7 @@ class Util {
 	 * @brief Find, sanitise and format users sharing a file
 	 * @note This wraps other methods into a portable bundle
 	 */
-	public function getSharingUsersArray( $sharingEnabled, $filePath ) {
+	public function getSharingUsersArray( $sharingEnabled, $filePath, $currentUserId = false ) {
 
 		// Check if key recovery is enabled
 		$recoveryEnabled = $this->recoveryEnabled();
@@ -878,7 +878,12 @@ class Util {
 			$userIds[] = $adminUid;
 			
 		}
-		
+
+        // add current user if given
+        if($currentUserId != false) {
+            $userIds[] = $currentUserId;
+        }
+
 		// Remove duplicate UIDs
 		$uniqueUserIds = array_unique ( $userIds );
 		
-- 
GitLab