* part of the user setup that is run only once per user
*/
private function oneTimeUserSetup(IUser $user) {
- if (in_array($user->getUID(), $this->setupUsers, true)) {
+ if ($this->isSetupStarted($user)) {
return;
}
$this->setupUsers[] = $user->getUID();
+ $this->setupRoot();
+
$this->eventLogger->start('fs:setup:user:onetime', 'Onetime filesystem for user');
$this->setupBuiltinWrappers();
* @throws \OC\ServerNotAvailableException
*/
private function setupForUserWith(IUser $user, callable $mountCallback): void {
- $this->setupRoot();
-
- if (!$this->isSetupStarted($user)) {
- $this->oneTimeUserSetup($user);
- }
+ $this->oneTimeUserSetup($user);
if ($this->lockdownManager->canAccessFilesystem()) {
$mountCallback();
return;
}
- if (!$this->isSetupStarted($user)) {
- $this->oneTimeUserSetup($user);
- }
+ $this->oneTimeUserSetup($user);
$this->eventLogger->start('fs:setup:user:path', "Setup $path filesystem for user");
$this->eventLogger->start('fs:setup:user:path:find', "Find mountpoint for $path");
$this->eventLogger->start('fs:setup:user:providers', "Setup filesystem for " . implode(', ', $providers));
+ $this->oneTimeUserSetup($user);
+
// home providers are always used
$providers = array_filter($providers, function (string $provider) {
return !is_subclass_of($provider, IHomeMountProvider::class);