summaryrefslogtreecommitdiffstats
path: root/lib/private/share/hooks.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/private/share/hooks.php')
-rw-r--r--lib/private/share/hooks.php17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/private/share/hooks.php b/lib/private/share/hooks.php
index c939164e39e..b730146ddfe 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);
+ }
+ }
}
/**