$storage, 'mountPoint' => $mountPoint, 'mount' => $mount ]; // Only evaluate other conditions if not forced if (!$force) { // If a disabled storage medium, return basic storage if ($storage->instanceOfStorage(IDisableEncryptionStorage::class)) { return $storage; } // Root mount point handling: skip encryption wrapper if ($mountPoint === '/') { return $storage; } // Skip encryption for home mounts if encryptHomeStorage is disabled if ($mount instanceof HomeMountPoint && !Server::get(IAppConfig::class)->getValueBool('encryption', 'encryptHomeStorage', true)) { return $storage; } } // Apply encryption wrapper $user = Server::get(IUserSession::class)->getUser(); $mountManager = Filesystem::getMountManager(); $uid = $user ? $user->getUID() : null; $fileHelper = Server::get(IFile::class); $keyStorage = Server::get(EncryptionKeysStorage::class); $util = new Util( new View(), Server::get(IUserManager::class), Server::get(IGroupManager::class), Server::get(IConfig::class) ); return new Encryption( $parameters, $this->manager, $util, $this->logger, $fileHelper, $uid, $keyStorage, $mountManager, $this->arrayCache ); } }