From bd456b5889443816d80278e0818ae64bd32ffe4d Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 22 Jan 2016 14:17:37 +0100 Subject: [PATCH] Fix addUserToGroup hook of the share code * sets up the filesystem of the user that is added to a group to properly accept shares * fixes #18499 --- lib/private/share/hooks.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php index 1fa233916d..0caa1a3aa8 100644 --- a/lib/private/share/hooks.php +++ b/lib/private/share/hooks.php @@ -55,6 +55,15 @@ class Hooks extends \OC\Share\Constants { * @param array $arguments */ public static function pre_addToGroup($arguments) { + $currentUser = \OC::$server->getUserSession()->getUser(); + $currentUserID = is_null($currentUser) ? '' : $currentUser->getUID(); + + // setup filesystem for added user if it isn't the current user + if($currentUserID !== $arguments['uid']) { + \OC_Util::tearDownFS(); + \OC_Util::setupFS($arguments['uid']); + } + /** @var \OC\DB\Connection $db */ $db = \OC::$server->getDatabaseConnection(); @@ -120,6 +129,14 @@ class Hooks extends \OC\Share\Constants { ]; } } + + // re-setup old filesystem state + if($currentUserID !== $arguments['uid']) { + \OC_Util::tearDownFS(); + if($currentUserID !== '') { + \OC_Util::setupFS($currentUserID); + } + } } /**