diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php index c939164e39..b730146ddf 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); + } + } } /**