Merge pull request #12577 from owncloud/public-mount-api
Add a public api for apps to add mounts
This commit is contained in:
commit
25a87d4058
|
@ -177,3 +177,5 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array(
|
||||||
'password' => '*'.$l->t('Password'),
|
'password' => '*'.$l->t('Password'),
|
||||||
'root' => '&'.$l->t('Root'))));
|
'root' => '&'.$l->t('Root'))));
|
||||||
|
|
||||||
|
$mountProvider = new \OCA\Files_External\Config\ConfigAdapter();
|
||||||
|
\OC::$server->getMountProviderCollection()->registerProvider($mountProvider);
|
||||||
|
|
|
@ -103,22 +103,6 @@ class OC_Mount_Config {
|
||||||
* @param array $data
|
* @param array $data
|
||||||
*/
|
*/
|
||||||
public static function initMountPointsHook($data) {
|
public static function initMountPointsHook($data) {
|
||||||
$mountPoints = self::getAbsoluteMountPoints($data['user']);
|
|
||||||
$loader = \OC\Files\Filesystem::getLoader();
|
|
||||||
$manager = \OC\Files\Filesystem::getMountManager();
|
|
||||||
foreach ($mountPoints as $mountPoint => $options) {
|
|
||||||
if (isset($options['options']['objectstore'])) {
|
|
||||||
$objectClass = $options['options']['objectstore']['class'];
|
|
||||||
$options['options']['objectstore'] = new $objectClass($options['options']['objectstore']);
|
|
||||||
}
|
|
||||||
if (isset($options['personal']) && $options['personal']) {
|
|
||||||
$mount = new \OCA\Files_External\PersonalMount($options['class'], $mountPoint, $options['options'], $loader);
|
|
||||||
} else{
|
|
||||||
$mount = new \OC\Files\Mount\Mount($options['class'], $mountPoint, $options['options'], $loader);
|
|
||||||
}
|
|
||||||
$manager->addMount($mount);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($data['user']) {
|
if ($data['user']) {
|
||||||
$user = \OC::$server->getUserManager()->get($data['user']);
|
$user = \OC::$server->getUserManager()->get($data['user']);
|
||||||
if (!$user) {
|
if (!$user) {
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCA\Files_External\Config;
|
||||||
|
|
||||||
|
use OC\Files\Mount\MountPoint;
|
||||||
|
use OCP\Files\Storage\IStorageFactory;
|
||||||
|
use OCA\Files_External\PersonalMount;
|
||||||
|
use OCP\Files\Config\IMountProvider;
|
||||||
|
use OCP\IUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Make the old files_external config work with the new public mount config api
|
||||||
|
*/
|
||||||
|
class ConfigAdapter implements IMountProvider {
|
||||||
|
/**
|
||||||
|
* Get all mountpoints applicable for the user
|
||||||
|
*
|
||||||
|
* @param \OCP\IUser $user
|
||||||
|
* @param \OCP\Files\Storage\IStorageFactory $loader
|
||||||
|
* @return \OCP\Files\Mount\IMountPoint[]
|
||||||
|
*/
|
||||||
|
public function getMountsForUser(IUser $user, IStorageFactory $loader) {
|
||||||
|
$mountPoints = \OC_Mount_Config::getAbsoluteMountPoints($user->getUID());
|
||||||
|
$mounts = array();
|
||||||
|
foreach ($mountPoints as $mountPoint => $options) {
|
||||||
|
if (isset($options['options']['objectstore'])) {
|
||||||
|
$objectClass = $options['options']['objectstore']['class'];
|
||||||
|
$options['options']['objectstore'] = new $objectClass($options['options']['objectstore']);
|
||||||
|
}
|
||||||
|
if (isset($options['personal']) && $options['personal']) {
|
||||||
|
$mounts[] = new PersonalMount($options['class'], $mountPoint, $options['options'], $loader);
|
||||||
|
} else {
|
||||||
|
$mounts[] = new MountPoint($options['class'], $mountPoint, $options['options'], $loader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $mounts;
|
||||||
|
}
|
||||||
|
}
|
|
@ -8,13 +8,13 @@
|
||||||
|
|
||||||
namespace OCA\Files_External;
|
namespace OCA\Files_External;
|
||||||
|
|
||||||
use OC\Files\Mount\Mount;
|
use OC\Files\Mount\MountPoint;
|
||||||
use OC\Files\Mount\MoveableMount;
|
use OC\Files\Mount\MoveableMount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Person mount points can be moved by the user
|
* Person mount points can be moved by the user
|
||||||
*/
|
*/
|
||||||
class PersonalMount extends Mount implements MoveableMount {
|
class PersonalMount extends MountPoint implements MoveableMount {
|
||||||
/**
|
/**
|
||||||
* Move the mount point to $target
|
* Move the mount point to $target
|
||||||
*
|
*
|
||||||
|
|
|
@ -24,7 +24,7 @@ class Manager {
|
||||||
private $mountManager;
|
private $mountManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Storage\Loader
|
* @var \OC\Files\Storage\StorageFactory
|
||||||
*/
|
*/
|
||||||
private $storageLoader;
|
private $storageLoader;
|
||||||
|
|
||||||
|
@ -37,10 +37,10 @@ class Manager {
|
||||||
* @param \OCP\IDBConnection $connection
|
* @param \OCP\IDBConnection $connection
|
||||||
* @param \OC\Files\Mount\Manager $mountManager
|
* @param \OC\Files\Mount\Manager $mountManager
|
||||||
* @param \OC\User\Session $userSession
|
* @param \OC\User\Session $userSession
|
||||||
* @param \OC\Files\Storage\Loader $storageLoader
|
* @param \OC\Files\Storage\StorageFactory $storageLoader
|
||||||
*/
|
*/
|
||||||
public function __construct(\OCP\IDBConnection $connection, \OC\Files\Mount\Manager $mountManager,
|
public function __construct(\OCP\IDBConnection $connection, \OC\Files\Mount\Manager $mountManager,
|
||||||
\OC\Files\Storage\Loader $storageLoader, \OC\User\Session $userSession) {
|
\OC\Files\Storage\StorageFactory $storageLoader, \OC\User\Session $userSession) {
|
||||||
$this->connection = $connection;
|
$this->connection = $connection;
|
||||||
$this->mountManager = $mountManager;
|
$this->mountManager = $mountManager;
|
||||||
$this->userSession = $userSession;
|
$this->userSession = $userSession;
|
||||||
|
|
|
@ -8,9 +8,10 @@
|
||||||
|
|
||||||
namespace OCA\Files_Sharing\External;
|
namespace OCA\Files_Sharing\External;
|
||||||
|
|
||||||
|
use OC\Files\Mount\MountPoint;
|
||||||
use OC\Files\Mount\MoveableMount;
|
use OC\Files\Mount\MoveableMount;
|
||||||
|
|
||||||
class Mount extends \OC\Files\Mount\Mount implements MoveableMount {
|
class Mount extends MountPoint implements MoveableMount {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \OCA\Files_Sharing\External\Manager
|
* @var \OCA\Files_Sharing\External\Manager
|
||||||
|
@ -22,7 +23,7 @@ class Mount extends \OC\Files\Mount\Mount implements MoveableMount {
|
||||||
* @param string $mountpoint
|
* @param string $mountpoint
|
||||||
* @param array $options
|
* @param array $options
|
||||||
* @param \OCA\Files_Sharing\External\Manager $manager
|
* @param \OCA\Files_Sharing\External\Manager $manager
|
||||||
* @param \OC\Files\Storage\Loader $loader
|
* @param \OC\Files\Storage\StorageFactory $loader
|
||||||
*/
|
*/
|
||||||
public function __construct($storage, $mountpoint, $options, $manager, $loader = null) {
|
public function __construct($storage, $mountpoint, $options, $manager, $loader = null) {
|
||||||
parent::__construct($storage, $mountpoint, $options, $loader);
|
parent::__construct($storage, $mountpoint, $options, $loader);
|
||||||
|
|
|
@ -8,13 +8,13 @@
|
||||||
|
|
||||||
namespace OCA\Files_Sharing;
|
namespace OCA\Files_Sharing;
|
||||||
|
|
||||||
use OC\Files\Mount\Mount;
|
use OC\Files\Mount\MountPoint;
|
||||||
use OC\Files\Mount\MoveableMount;
|
use OC\Files\Mount\MoveableMount;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Shared mount points can be moved by the user
|
* Shared mount points can be moved by the user
|
||||||
*/
|
*/
|
||||||
class SharedMount extends Mount implements MoveableMount {
|
class SharedMount extends MountPoint implements MoveableMount {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Storage\Shared $storage
|
* @var \OC\Files\Storage\Shared $storage
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OC\Files\Config;
|
||||||
|
|
||||||
|
use OCP\Files\Config\IMountProviderCollection;
|
||||||
|
use OCP\Files\Config\IMountProvider;
|
||||||
|
use OCP\Files\Storage\IStorageFactory;
|
||||||
|
use OCP\IUser;
|
||||||
|
|
||||||
|
class MountProviderCollection implements IMountProviderCollection {
|
||||||
|
/**
|
||||||
|
* @var \OCP\Files\Config\IMountProvider[]
|
||||||
|
*/
|
||||||
|
private $providers = array();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var \OCP\Files\Storage\IStorageFactory
|
||||||
|
*/
|
||||||
|
private $loader;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param \OCP\Files\Storage\IStorageFactory $loader
|
||||||
|
*/
|
||||||
|
public function __construct(IStorageFactory $loader) {
|
||||||
|
$this->loader = $loader;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all configured mount points for the user
|
||||||
|
*
|
||||||
|
* @param \OCP\IUser $user
|
||||||
|
* @return \OCP\Files\Mount\IMountPoint[]
|
||||||
|
*/
|
||||||
|
public function getMountsForUser(IUser $user) {
|
||||||
|
$loader = $this->loader;
|
||||||
|
return array_reduce($this->providers, function ($mounts, IMountProvider $provider) use ($user, $loader) {
|
||||||
|
return array_merge($mounts, $provider->getMountsForUser($user, $loader));
|
||||||
|
}, array());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a provider for mount points
|
||||||
|
*
|
||||||
|
* @param \OCP\Files\Config\IMountProvider $provider
|
||||||
|
*/
|
||||||
|
public function registerProvider(IMountProvider $provider) {
|
||||||
|
$this->providers[] = $provider;
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,7 +30,7 @@
|
||||||
|
|
||||||
namespace OC\Files;
|
namespace OC\Files;
|
||||||
|
|
||||||
use OC\Files\Storage\Loader;
|
use OC\Files\Storage\StorageFactory;
|
||||||
|
|
||||||
class Filesystem {
|
class Filesystem {
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ class Filesystem {
|
||||||
const signal_param_users = 'users';
|
const signal_param_users = 'users';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Storage\Loader $loader
|
* @var \OC\Files\Storage\StorageFactory $loader
|
||||||
*/
|
*/
|
||||||
private static $loader;
|
private static $loader;
|
||||||
|
|
||||||
|
@ -183,7 +183,7 @@ class Filesystem {
|
||||||
|
|
||||||
public static function getLoader() {
|
public static function getLoader() {
|
||||||
if (!self::$loader) {
|
if (!self::$loader) {
|
||||||
self::$loader = new Loader();
|
self::$loader = new StorageFactory();
|
||||||
}
|
}
|
||||||
return self::$loader;
|
return self::$loader;
|
||||||
}
|
}
|
||||||
|
@ -250,7 +250,7 @@ class Filesystem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @return Mount\Mount[]
|
* @return Mount\MountPoint[]
|
||||||
*/
|
*/
|
||||||
public static function getMountByStorageId($id) {
|
public static function getMountByStorageId($id) {
|
||||||
if (!self::$mounts) {
|
if (!self::$mounts) {
|
||||||
|
@ -261,7 +261,7 @@ class Filesystem {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @return Mount\Mount[]
|
* @return Mount\MountPoint[]
|
||||||
*/
|
*/
|
||||||
public static function getMountByNumericId($id) {
|
public static function getMountByNumericId($id) {
|
||||||
if (!self::$mounts) {
|
if (!self::$mounts) {
|
||||||
|
@ -370,6 +370,11 @@ class Filesystem {
|
||||||
self::mountCacheDir($user);
|
self::mountCacheDir($user);
|
||||||
|
|
||||||
// Chance to mount for other storages
|
// Chance to mount for other storages
|
||||||
|
if($userObject) {
|
||||||
|
$mountConfigManager = \OC::$server->getMountProviderCollection();
|
||||||
|
$mounts = $mountConfigManager->getMountsForUser($userObject);
|
||||||
|
array_walk($mounts, array(self::$mounts, 'addMount'));
|
||||||
|
}
|
||||||
\OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root));
|
\OC_Hook::emit('OC_Filesystem', 'post_initMountPoints', array('user' => $user, 'user_dir' => $root));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,7 +452,7 @@ class Filesystem {
|
||||||
if (!self::$mounts) {
|
if (!self::$mounts) {
|
||||||
\OC_Util::setupFS();
|
\OC_Util::setupFS();
|
||||||
}
|
}
|
||||||
$mount = new Mount\Mount($class, $mountpoint, $arguments, self::getLoader());
|
$mount = new Mount\MountPoint($class, $mountpoint, $arguments, self::getLoader());
|
||||||
self::$mounts->addMount($mount);
|
self::$mounts->addMount($mount);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,14 +12,14 @@ use \OC\Files\Filesystem;
|
||||||
|
|
||||||
class Manager {
|
class Manager {
|
||||||
/**
|
/**
|
||||||
* @var Mount[]
|
* @var MountPoint[]
|
||||||
*/
|
*/
|
||||||
private $mounts = array();
|
private $mounts = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param Mount $mount
|
* @param MountPoint $mount
|
||||||
*/
|
*/
|
||||||
public function addMount(Mount $mount) {
|
public function addMount(MountPoint $mount) {
|
||||||
$this->mounts[$mount->getMountPoint()] = $mount;
|
$this->mounts[$mount->getMountPoint()] = $mount;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,7 +47,7 @@ class Manager {
|
||||||
* Find the mount for $path
|
* Find the mount for $path
|
||||||
*
|
*
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @return Mount
|
* @return MountPoint
|
||||||
*/
|
*/
|
||||||
public function find($path) {
|
public function find($path) {
|
||||||
\OC_Util::setupFS();
|
\OC_Util::setupFS();
|
||||||
|
@ -75,7 +75,7 @@ class Manager {
|
||||||
* Find all mounts in $path
|
* Find all mounts in $path
|
||||||
*
|
*
|
||||||
* @param string $path
|
* @param string $path
|
||||||
* @return Mount[]
|
* @return MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function findIn($path) {
|
public function findIn($path) {
|
||||||
\OC_Util::setupFS();
|
\OC_Util::setupFS();
|
||||||
|
@ -99,7 +99,7 @@ class Manager {
|
||||||
* Find mounts by storage id
|
* Find mounts by storage id
|
||||||
*
|
*
|
||||||
* @param string $id
|
* @param string $id
|
||||||
* @return Mount[]
|
* @return MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function findByStorageId($id) {
|
public function findByStorageId($id) {
|
||||||
\OC_Util::setupFS();
|
\OC_Util::setupFS();
|
||||||
|
@ -116,7 +116,7 @@ class Manager {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return Mount[]
|
* @return MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function getAll() {
|
public function getAll() {
|
||||||
return $this->mounts;
|
return $this->mounts;
|
||||||
|
@ -126,7 +126,7 @@ class Manager {
|
||||||
* Find mounts by numeric storage id
|
* Find mounts by numeric storage id
|
||||||
*
|
*
|
||||||
* @param int $id
|
* @param int $id
|
||||||
* @return Mount[]
|
* @return MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function findByNumericId($id) {
|
public function findByNumericId($id) {
|
||||||
$storageId = \OC\Files\Cache\Storage::getStorageId($id);
|
$storageId = \OC\Files\Cache\Storage::getStorageId($id);
|
||||||
|
|
|
@ -9,10 +9,11 @@
|
||||||
namespace OC\Files\Mount;
|
namespace OC\Files\Mount;
|
||||||
|
|
||||||
use \OC\Files\Filesystem;
|
use \OC\Files\Filesystem;
|
||||||
use OC\Files\Storage\Loader;
|
use OC\Files\Storage\StorageFactory;
|
||||||
use OC\Files\Storage\Storage;
|
use OC\Files\Storage\Storage;
|
||||||
|
use OCP\Files\Mount\IMountPoint;
|
||||||
|
|
||||||
class Mount {
|
class MountPoint implements IMountPoint {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Storage\Storage $storage
|
* @var \OC\Files\Storage\Storage $storage
|
||||||
*/
|
*/
|
||||||
|
@ -23,7 +24,7 @@ class Mount {
|
||||||
protected $mountPoint;
|
protected $mountPoint;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Storage\Loader $loader
|
* @var \OC\Files\Storage\StorageFactory $loader
|
||||||
*/
|
*/
|
||||||
private $loader;
|
private $loader;
|
||||||
|
|
||||||
|
@ -31,14 +32,14 @@ class Mount {
|
||||||
* @param string|\OC\Files\Storage\Storage $storage
|
* @param string|\OC\Files\Storage\Storage $storage
|
||||||
* @param string $mountpoint
|
* @param string $mountpoint
|
||||||
* @param array $arguments (optional)\
|
* @param array $arguments (optional)\
|
||||||
* @param \OC\Files\Storage\Loader $loader
|
* @param \OCP\Files\Storage\IStorageFactory $loader
|
||||||
*/
|
*/
|
||||||
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
|
public function __construct($storage, $mountpoint, $arguments = null, $loader = null) {
|
||||||
if (is_null($arguments)) {
|
if (is_null($arguments)) {
|
||||||
$arguments = array();
|
$arguments = array();
|
||||||
}
|
}
|
||||||
if (is_null($loader)) {
|
if (is_null($loader)) {
|
||||||
$this->loader = new Loader();
|
$this->loader = new StorageFactory();
|
||||||
} else {
|
} else {
|
||||||
$this->loader = $loader;
|
$this->loader = $loader;
|
||||||
}
|
}
|
||||||
|
@ -67,15 +68,6 @@ class Mount {
|
||||||
return $this->mountPoint;
|
return $this->mountPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* get name of the mount point
|
|
||||||
*
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
public function getMountPointName() {
|
|
||||||
return basename(rtrim($this->mountPoint, '/'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $mountPoint new mount point
|
* @param string $mountPoint new mount point
|
||||||
*/
|
*/
|
||||||
|
@ -91,7 +83,7 @@ class Mount {
|
||||||
private function createStorage() {
|
private function createStorage() {
|
||||||
if (class_exists($this->class)) {
|
if (class_exists($this->class)) {
|
||||||
try {
|
try {
|
||||||
return $this->loader->load($this->mountPoint, $this->class, $this->arguments);
|
return $this->loader->getInstance($this->mountPoint, $this->class, $this->arguments);
|
||||||
} catch (\Exception $exception) {
|
} catch (\Exception $exception) {
|
||||||
if ($this->mountPoint === '/') {
|
if ($this->mountPoint === '/') {
|
||||||
// the root storage could not be initialized, show the user!
|
// the root storage could not be initialized, show the user!
|
|
@ -301,7 +301,7 @@ class Folder extends Node implements \OCP\Files\Folder {
|
||||||
$nodes = array();
|
$nodes = array();
|
||||||
foreach ($mounts as $mount) {
|
foreach ($mounts as $mount) {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Mount\Mount $mount
|
* @var \OC\Files\Mount\MountPoint $mount
|
||||||
*/
|
*/
|
||||||
if ($mount->getStorage()) {
|
if ($mount->getStorage()) {
|
||||||
$cache = $mount->getStorage()->getCache();
|
$cache = $mount->getStorage()->getCache();
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace OC\Files\Node;
|
||||||
|
|
||||||
use OC\Files\Cache\Cache;
|
use OC\Files\Cache\Cache;
|
||||||
use OC\Files\Mount\Manager;
|
use OC\Files\Mount\Manager;
|
||||||
use OC\Files\Mount\Mount;
|
use OC\Files\Mount\MountPoint;
|
||||||
use OCP\Files\NotFoundException;
|
use OCP\Files\NotFoundException;
|
||||||
use OCP\Files\NotPermittedException;
|
use OCP\Files\NotPermittedException;
|
||||||
use OC\Hooks\Emitter;
|
use OC\Hooks\Emitter;
|
||||||
|
@ -106,13 +106,13 @@ class Root extends Folder implements Emitter {
|
||||||
* @param array $arguments
|
* @param array $arguments
|
||||||
*/
|
*/
|
||||||
public function mount($storage, $mountPoint, $arguments = array()) {
|
public function mount($storage, $mountPoint, $arguments = array()) {
|
||||||
$mount = new Mount($storage, $mountPoint, $arguments);
|
$mount = new MountPoint($storage, $mountPoint, $arguments);
|
||||||
$this->mountManager->addMount($mount);
|
$this->mountManager->addMount($mount);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $mountPoint
|
* @param string $mountPoint
|
||||||
* @return \OC\Files\Mount\Mount
|
* @return \OC\Files\Mount\MountPoint
|
||||||
*/
|
*/
|
||||||
public function getMount($mountPoint) {
|
public function getMount($mountPoint) {
|
||||||
return $this->mountManager->find($mountPoint);
|
return $this->mountManager->find($mountPoint);
|
||||||
|
@ -120,7 +120,7 @@ class Root extends Folder implements Emitter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $mountPoint
|
* @param string $mountPoint
|
||||||
* @return \OC\Files\Mount\Mount[]
|
* @return \OC\Files\Mount\MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function getMountsIn($mountPoint) {
|
public function getMountsIn($mountPoint) {
|
||||||
return $this->mountManager->findIn($mountPoint);
|
return $this->mountManager->findIn($mountPoint);
|
||||||
|
@ -128,7 +128,7 @@ class Root extends Folder implements Emitter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $storageId
|
* @param string $storageId
|
||||||
* @return \OC\Files\Mount\Mount[]
|
* @return \OC\Files\Mount\MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function getMountByStorageId($storageId) {
|
public function getMountByStorageId($storageId) {
|
||||||
return $this->mountManager->findByStorageId($storageId);
|
return $this->mountManager->findByStorageId($storageId);
|
||||||
|
@ -136,14 +136,14 @@ class Root extends Folder implements Emitter {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $numericId
|
* @param int $numericId
|
||||||
* @return Mount[]
|
* @return MountPoint[]
|
||||||
*/
|
*/
|
||||||
public function getMountByNumericStorageId($numericId) {
|
public function getMountByNumericStorageId($numericId) {
|
||||||
return $this->mountManager->findByNumericId($numericId);
|
return $this->mountManager->findByNumericId($numericId);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \OC\Files\Mount\Mount $mount
|
* @param \OC\Files\Mount\MountPoint $mount
|
||||||
*/
|
*/
|
||||||
public function unMount($mount) {
|
public function unMount($mount) {
|
||||||
$this->mountManager->remove($mount);
|
$this->mountManager->remove($mount);
|
||||||
|
|
|
@ -8,7 +8,9 @@
|
||||||
|
|
||||||
namespace OC\Files\Storage;
|
namespace OC\Files\Storage;
|
||||||
|
|
||||||
class Loader {
|
use OCP\Files\Storage\IStorageFactory;
|
||||||
|
|
||||||
|
class StorageFactory implements IStorageFactory {
|
||||||
/**
|
/**
|
||||||
* @var callable[] $storageWrappers
|
* @var callable[] $storageWrappers
|
||||||
*/
|
*/
|
||||||
|
@ -19,6 +21,7 @@ class Loader {
|
||||||
*
|
*
|
||||||
* $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
|
* $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
|
||||||
*
|
*
|
||||||
|
* @param string $wrapperName
|
||||||
* @param callable $callback
|
* @param callable $callback
|
||||||
*/
|
*/
|
||||||
public function addStorageWrapper($wrapperName, $callback) {
|
public function addStorageWrapper($wrapperName, $callback) {
|
||||||
|
@ -26,15 +29,21 @@ class Loader {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Create an instance of a storage and apply the registered storage wrappers
|
||||||
|
*
|
||||||
* @param string|boolean $mountPoint
|
* @param string|boolean $mountPoint
|
||||||
* @param string $class
|
* @param string $class
|
||||||
|
* @param array $arguments
|
||||||
|
* @return \OCP\Files\Storage
|
||||||
*/
|
*/
|
||||||
public function load($mountPoint, $class, $arguments) {
|
public function getInstance($mountPoint, $class, $arguments) {
|
||||||
return $this->wrap($mountPoint, new $class($arguments));
|
return $this->wrap($mountPoint, new $class($arguments));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string|boolean $mountPoint
|
* @param string|boolean $mountPoint
|
||||||
|
* @param \OCP\Files\Storage $storage
|
||||||
|
* @return \OCP\Files\Storage
|
||||||
*/
|
*/
|
||||||
public function wrap($mountPoint, $storage) {
|
public function wrap($mountPoint, $storage) {
|
||||||
foreach ($this->storageWrappers as $wrapper) {
|
foreach ($this->storageWrappers as $wrapper) {
|
|
@ -53,7 +53,7 @@ class Scanner extends PublicEmitter {
|
||||||
* get all storages for $dir
|
* get all storages for $dir
|
||||||
*
|
*
|
||||||
* @param string $dir
|
* @param string $dir
|
||||||
* @return \OC\Files\Mount\Mount[]
|
* @return \OC\Files\Mount\MountPoint[]
|
||||||
*/
|
*/
|
||||||
protected function getMounts($dir) {
|
protected function getMounts($dir) {
|
||||||
//TODO: move to the node based fileapi once that's done
|
//TODO: move to the node based fileapi once that's done
|
||||||
|
@ -72,7 +72,7 @@ class Scanner extends PublicEmitter {
|
||||||
/**
|
/**
|
||||||
* attach listeners to the scanner
|
* attach listeners to the scanner
|
||||||
*
|
*
|
||||||
* @param \OC\Files\Mount\Mount $mount
|
* @param \OC\Files\Mount\MountPoint $mount
|
||||||
*/
|
*/
|
||||||
protected function attachListener($mount) {
|
protected function attachListener($mount) {
|
||||||
$scanner = $mount->getStorage()->getScanner();
|
$scanner = $mount->getStorage()->getScanner();
|
||||||
|
|
|
@ -465,7 +465,7 @@ class View {
|
||||||
if ($internalPath1 === '' and $mount instanceof MoveableMount) {
|
if ($internalPath1 === '' and $mount instanceof MoveableMount) {
|
||||||
if ($this->isTargetAllowed($absolutePath2)) {
|
if ($this->isTargetAllowed($absolutePath2)) {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Mount\Mount | \OC\Files\Mount\MoveableMount $mount
|
* @var \OC\Files\Mount\MountPoint | \OC\Files\Mount\MoveableMount $mount
|
||||||
*/
|
*/
|
||||||
$sourceMountPoint = $mount->getMountPoint();
|
$sourceMountPoint = $mount->getMountPoint();
|
||||||
$result = $mount->moveMount($absolutePath2);
|
$result = $mount->moveMount($absolutePath2);
|
||||||
|
@ -1227,7 +1227,7 @@ class View {
|
||||||
$mounts = array_reverse($mounts);
|
$mounts = array_reverse($mounts);
|
||||||
foreach ($mounts as $mount) {
|
foreach ($mounts as $mount) {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Mount\Mount $mount
|
* @var \OC\Files\Mount\MountPoint $mount
|
||||||
*/
|
*/
|
||||||
if ($mount->getStorage()) {
|
if ($mount->getStorage()) {
|
||||||
$cache = $mount->getStorage()->getCache();
|
$cache = $mount->getStorage()->getCache();
|
||||||
|
|
|
@ -9,6 +9,7 @@ use OC\Cache\UserCache;
|
||||||
use OC\Diagnostics\NullQueryLogger;
|
use OC\Diagnostics\NullQueryLogger;
|
||||||
use OC\Diagnostics\EventLogger;
|
use OC\Diagnostics\EventLogger;
|
||||||
use OC\Diagnostics\QueryLogger;
|
use OC\Diagnostics\QueryLogger;
|
||||||
|
use OC\Files\Config\StorageManager;
|
||||||
use OC\Security\CertificateManager;
|
use OC\Security\CertificateManager;
|
||||||
use OC\DB\ConnectionWrapper;
|
use OC\DB\ConnectionWrapper;
|
||||||
use OC\Files\Node\Root;
|
use OC\Files\Node\Root;
|
||||||
|
@ -268,6 +269,10 @@ class Server extends SimpleContainer implements IServerContainer {
|
||||||
$groupManager = $c->getGroupManager();
|
$groupManager = $c->getGroupManager();
|
||||||
return new \OC\App\AppManager($userSession, $appConfig, $groupManager);
|
return new \OC\App\AppManager($userSession, $appConfig, $groupManager);
|
||||||
});
|
});
|
||||||
|
$this->registerService('MountConfigManager', function () {
|
||||||
|
$loader = \OC\Files\Filesystem::getLoader();
|
||||||
|
return new \OC\Files\Config\MountProviderCollection($loader);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -665,4 +670,11 @@ class Server extends SimpleContainer implements IServerContainer {
|
||||||
function getWebRoot() {
|
function getWebRoot() {
|
||||||
return $this->webRoot;
|
return $this->webRoot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \OCP\Files\Config\IMountProviderCollection
|
||||||
|
*/
|
||||||
|
function getMountProviderCollection(){
|
||||||
|
return $this->query('MountConfigManager');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCP\Files\Config;
|
||||||
|
|
||||||
|
use OCP\Files\Storage\IStorageFactory;
|
||||||
|
use OCP\IUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides
|
||||||
|
*/
|
||||||
|
interface IMountProvider {
|
||||||
|
/**
|
||||||
|
* Get all mountpoints applicable for the user
|
||||||
|
*
|
||||||
|
* @param \OCP\IUser $user
|
||||||
|
* @param \OCP\Files\Storage\IStorageFactory $loader
|
||||||
|
* @return \OCP\Files\Mount\IMountPoint[]
|
||||||
|
*/
|
||||||
|
public function getMountsForUser(IUser $user, IStorageFactory $loader);
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCP\Files\Config;
|
||||||
|
|
||||||
|
use OCP\IUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Manages the different mount providers
|
||||||
|
*/
|
||||||
|
interface IMountProviderCollection {
|
||||||
|
/**
|
||||||
|
* Get all configured mount points for the user
|
||||||
|
*
|
||||||
|
* @param \OCP\IUser $user
|
||||||
|
* @return \OCP\Files\Mount\IMountPoint[]
|
||||||
|
*/
|
||||||
|
public function getMountsForUser(IUser $user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add a provider for mount points
|
||||||
|
*
|
||||||
|
* @param \OCP\Files\Config\IMountProvider $provider
|
||||||
|
*/
|
||||||
|
public function registerProvider(IMountProvider $provider);
|
||||||
|
}
|
|
@ -0,0 +1,58 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2014 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCP\Files\Mount;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A storage mounted to folder on the filesystem
|
||||||
|
*/
|
||||||
|
interface IMountPoint {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get complete path to the mount point
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getMountPoint();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the mountpoint
|
||||||
|
*
|
||||||
|
* @param string $mountPoint new mount point
|
||||||
|
*/
|
||||||
|
public function setMountPoint($mountPoint);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the storage that is mounted
|
||||||
|
*
|
||||||
|
* @return \OC\Files\Storage\Storage
|
||||||
|
*/
|
||||||
|
public function getStorage();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the id of the storages
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getStorageId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the path relative to the mountpoint
|
||||||
|
*
|
||||||
|
* @param string $path absolute path to a file or folder
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getInternalPath($path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Apply a storage wrapper to the mounted storage
|
||||||
|
*
|
||||||
|
* @param callable $wrapper
|
||||||
|
*/
|
||||||
|
public function wrapStorage($wrapper);
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Copyright (c) 2012 Robin Appelman <icewind@owncloud.com>
|
||||||
|
* This file is licensed under the Affero General Public License version 3 or
|
||||||
|
* later.
|
||||||
|
* See the COPYING-README file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace OCP\Files\Storage;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates storage instances and manages and applies storage wrappers
|
||||||
|
*/
|
||||||
|
interface IStorageFactory {
|
||||||
|
/**
|
||||||
|
* allow modifier storage behaviour by adding wrappers around storages
|
||||||
|
*
|
||||||
|
* $callback should be a function of type (string $mountPoint, Storage $storage) => Storage
|
||||||
|
*
|
||||||
|
* @param string $wrapperName
|
||||||
|
* @param callable $callback
|
||||||
|
*/
|
||||||
|
public function addStorageWrapper($wrapperName, $callback);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param string|boolean $mountPoint
|
||||||
|
* @param string $class
|
||||||
|
* @param array $arguments
|
||||||
|
* @return \OCP\Files\Storage
|
||||||
|
*/
|
||||||
|
public function getInstance($mountPoint, $class, $arguments);
|
||||||
|
}
|
|
@ -305,4 +305,9 @@ interface IServerContainer {
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
function getWebRoot();
|
function getWebRoot();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return \OCP\Files\Config\IMountProviderCollection
|
||||||
|
*/
|
||||||
|
function getMountProviderCollection();
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,33 +30,33 @@ class Manager extends \Test\TestCase {
|
||||||
public function testFind() {
|
public function testFind() {
|
||||||
$this->assertNull($this->manager->find('/'));
|
$this->assertNull($this->manager->find('/'));
|
||||||
|
|
||||||
$rootMount = new \OC\Files\Mount\Mount(new Temporary(array()), '/');
|
$rootMount = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/');
|
||||||
$this->manager->addMount($rootMount);
|
$this->manager->addMount($rootMount);
|
||||||
$this->assertEquals($rootMount, $this->manager->find('/'));
|
$this->assertEquals($rootMount, $this->manager->find('/'));
|
||||||
$this->assertEquals($rootMount, $this->manager->find('/foo/bar'));
|
$this->assertEquals($rootMount, $this->manager->find('/foo/bar'));
|
||||||
|
|
||||||
$storage = new Temporary(array());
|
$storage = new Temporary(array());
|
||||||
$mount1 = new \OC\Files\Mount\Mount($storage, '/foo');
|
$mount1 = new \OC\Files\Mount\MountPoint($storage, '/foo');
|
||||||
$this->manager->addMount($mount1);
|
$this->manager->addMount($mount1);
|
||||||
$this->assertEquals($rootMount, $this->manager->find('/'));
|
$this->assertEquals($rootMount, $this->manager->find('/'));
|
||||||
$this->assertEquals($mount1, $this->manager->find('/foo/bar'));
|
$this->assertEquals($mount1, $this->manager->find('/foo/bar'));
|
||||||
|
|
||||||
$this->assertEquals(1, count($this->manager->findIn('/')));
|
$this->assertEquals(1, count($this->manager->findIn('/')));
|
||||||
$mount2 = new \OC\Files\Mount\Mount(new Temporary(array()), '/bar');
|
$mount2 = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/bar');
|
||||||
$this->manager->addMount($mount2);
|
$this->manager->addMount($mount2);
|
||||||
$this->assertEquals(2, count($this->manager->findIn('/')));
|
$this->assertEquals(2, count($this->manager->findIn('/')));
|
||||||
|
|
||||||
$id = $mount1->getStorageId();
|
$id = $mount1->getStorageId();
|
||||||
$this->assertEquals(array($mount1), $this->manager->findByStorageId($id));
|
$this->assertEquals(array($mount1), $this->manager->findByStorageId($id));
|
||||||
|
|
||||||
$mount3 = new \OC\Files\Mount\Mount($storage, '/foo/bar');
|
$mount3 = new \OC\Files\Mount\MountPoint($storage, '/foo/bar');
|
||||||
$this->manager->addMount($mount3);
|
$this->manager->addMount($mount3);
|
||||||
$this->assertEquals(array($mount1, $mount3), $this->manager->findByStorageId($id));
|
$this->assertEquals(array($mount1, $mount3), $this->manager->findByStorageId($id));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testLong() {
|
public function testLong() {
|
||||||
$storage = new LongId(array());
|
$storage = new LongId(array());
|
||||||
$mount = new \OC\Files\Mount\Mount($storage, '/foo');
|
$mount = new \OC\Files\Mount\MountPoint($storage, '/foo');
|
||||||
$this->manager->addMount($mount);
|
$this->manager->addMount($mount);
|
||||||
|
|
||||||
$id = $mount->getStorageId();
|
$id = $mount->getStorageId();
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
namespace Test\Files\Mount;
|
namespace Test\Files\Mount;
|
||||||
|
|
||||||
|
|
||||||
use OC\Files\Storage\Loader;
|
use OC\Files\Storage\StorageFactory;
|
||||||
use OC\Files\Storage\Wrapper\Wrapper;
|
use OC\Files\Storage\Wrapper\Wrapper;
|
||||||
|
|
||||||
class Mount extends \Test\TestCase {
|
class Mount extends \Test\TestCase {
|
||||||
|
@ -17,12 +17,12 @@ class Mount extends \Test\TestCase {
|
||||||
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
|
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->getMock();
|
->getMock();
|
||||||
$mount = new \OC\Files\Mount\Mount($storage, '/foo');
|
$mount = new \OC\Files\Mount\MountPoint($storage, '/foo');
|
||||||
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
|
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testFromStorageClassname() {
|
public function testFromStorageClassname() {
|
||||||
$mount = new \OC\Files\Mount\Mount('\OC\Files\Storage\Temporary', '/foo');
|
$mount = new \OC\Files\Mount\MountPoint('\OC\Files\Storage\Temporary', '/foo');
|
||||||
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
|
$this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -34,13 +34,13 @@ class Mount extends \Test\TestCase {
|
||||||
return new Wrapper(array('storage' => $storage));
|
return new Wrapper(array('storage' => $storage));
|
||||||
};
|
};
|
||||||
|
|
||||||
$loader = new Loader();
|
$loader = new StorageFactory();
|
||||||
$loader->addStorageWrapper('test_wrapper', $wrapper);
|
$loader->addStorageWrapper('test_wrapper', $wrapper);
|
||||||
|
|
||||||
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
|
$storage = $this->getMockBuilder('\OC\Files\Storage\Temporary')
|
||||||
->disableOriginalConstructor()
|
->disableOriginalConstructor()
|
||||||
->getMock();
|
->getMock();
|
||||||
$mount = new \OC\Files\Mount\Mount($storage, '/foo', array(), $loader);
|
$mount = new \OC\Files\Mount\MountPoint($storage, '/foo', array(), $loader);
|
||||||
$this->assertInstanceOf('\OC\Files\Storage\Wrapper\Wrapper', $mount->getStorage());
|
$this->assertInstanceOf('\OC\Files\Storage\Wrapper\Wrapper', $mount->getStorage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace Test\Files\Node;
|
||||||
|
|
||||||
use OC\Files\Cache\Cache;
|
use OC\Files\Cache\Cache;
|
||||||
use OC\Files\FileInfo;
|
use OC\Files\FileInfo;
|
||||||
use OC\Files\Mount\Mount;
|
use OC\Files\Mount\MountPoint;
|
||||||
use OC\Files\Node\Node;
|
use OC\Files\Node\Node;
|
||||||
use OCP\Files\NotFoundException;
|
use OCP\Files\NotFoundException;
|
||||||
use OCP\Files\NotPermittedException;
|
use OCP\Files\NotPermittedException;
|
||||||
|
@ -419,7 +419,7 @@ class Folder extends \Test\TestCase {
|
||||||
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
||||||
$subCache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
$subCache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
||||||
$subStorage = $this->getMock('\OC\Files\Storage\Storage');
|
$subStorage = $this->getMock('\OC\Files\Storage\Storage');
|
||||||
$subMount = $this->getMock('\OC\Files\Mount\Mount', array(), array(null, ''));
|
$subMount = $this->getMock('\OC\Files\Mount\MountPoint', array(), array(null, ''));
|
||||||
|
|
||||||
$subMount->expects($this->once())
|
$subMount->expects($this->once())
|
||||||
->method('getStorage')
|
->method('getStorage')
|
||||||
|
@ -487,7 +487,7 @@ class Folder extends \Test\TestCase {
|
||||||
->method('getUser')
|
->method('getUser')
|
||||||
->will($this->returnValue($this->user));
|
->will($this->returnValue($this->user));
|
||||||
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
||||||
$mount = new Mount($storage, '/bar');
|
$mount = new MountPoint($storage, '/bar');
|
||||||
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
||||||
|
|
||||||
$view->expects($this->once())
|
$view->expects($this->once())
|
||||||
|
@ -530,7 +530,7 @@ class Folder extends \Test\TestCase {
|
||||||
->method('getUser')
|
->method('getUser')
|
||||||
->will($this->returnValue($this->user));
|
->will($this->returnValue($this->user));
|
||||||
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
||||||
$mount = new Mount($storage, '/bar');
|
$mount = new MountPoint($storage, '/bar');
|
||||||
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
||||||
|
|
||||||
$storage->expects($this->once())
|
$storage->expects($this->once())
|
||||||
|
@ -568,8 +568,8 @@ class Folder extends \Test\TestCase {
|
||||||
->method('getUser')
|
->method('getUser')
|
||||||
->will($this->returnValue($this->user));
|
->will($this->returnValue($this->user));
|
||||||
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
$storage = $this->getMock('\OC\Files\Storage\Storage');
|
||||||
$mount1 = new Mount($storage, '/bar');
|
$mount1 = new MountPoint($storage, '/bar');
|
||||||
$mount2 = new Mount($storage, '/bar/foo/asd');
|
$mount2 = new MountPoint($storage, '/bar/foo/asd');
|
||||||
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
$cache = $this->getMock('\OC\Files\Cache\Cache', array(), array(''));
|
||||||
|
|
||||||
$view->expects($this->any())
|
$view->expects($this->any())
|
||||||
|
|
|
@ -9,17 +9,17 @@
|
||||||
namespace Test\Files\Utils;
|
namespace Test\Files\Utils;
|
||||||
|
|
||||||
use OC\Files\Filesystem;
|
use OC\Files\Filesystem;
|
||||||
use OC\Files\Mount\Mount;
|
use OC\Files\Mount\MountPoint;
|
||||||
use OC\Files\Storage\Temporary;
|
use OC\Files\Storage\Temporary;
|
||||||
|
|
||||||
class TestScanner extends \OC\Files\Utils\Scanner {
|
class TestScanner extends \OC\Files\Utils\Scanner {
|
||||||
/**
|
/**
|
||||||
* @var \OC\Files\Mount\Mount[] $mounts
|
* @var \OC\Files\Mount\MountPoint[] $mounts
|
||||||
*/
|
*/
|
||||||
private $mounts = array();
|
private $mounts = array();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param \OC\Files\Mount\Mount $mount
|
* @param \OC\Files\Mount\MountPoint $mount
|
||||||
*/
|
*/
|
||||||
public function addMount($mount) {
|
public function addMount($mount) {
|
||||||
$this->mounts[] = $mount;
|
$this->mounts[] = $mount;
|
||||||
|
@ -56,7 +56,7 @@ class Scanner extends \Test\TestCase {
|
||||||
|
|
||||||
public function testReuseExistingRoot() {
|
public function testReuseExistingRoot() {
|
||||||
$storage = new Temporary(array());
|
$storage = new Temporary(array());
|
||||||
$mount = new Mount($storage, '');
|
$mount = new MountPoint($storage, '');
|
||||||
Filesystem::getMountManager()->addMount($mount);
|
Filesystem::getMountManager()->addMount($mount);
|
||||||
$cache = $storage->getCache();
|
$cache = $storage->getCache();
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ class Scanner extends \Test\TestCase {
|
||||||
|
|
||||||
public function testReuseExistingFile() {
|
public function testReuseExistingFile() {
|
||||||
$storage = new Temporary(array());
|
$storage = new Temporary(array());
|
||||||
$mount = new Mount($storage, '');
|
$mount = new MountPoint($storage, '');
|
||||||
Filesystem::getMountManager()->addMount($mount);
|
Filesystem::getMountManager()->addMount($mount);
|
||||||
$cache = $storage->getCache();
|
$cache = $storage->getCache();
|
||||||
|
|
||||||
|
@ -105,7 +105,7 @@ class Scanner extends \Test\TestCase {
|
||||||
$propagator = $this->getMock('\OC\Files\Cache\ChangePropagator', array('propagateChanges'), array(), '', false);
|
$propagator = $this->getMock('\OC\Files\Cache\ChangePropagator', array('propagateChanges'), array(), '', false);
|
||||||
|
|
||||||
$storage = new Temporary(array());
|
$storage = new Temporary(array());
|
||||||
$mount = new Mount($storage, '/foo');
|
$mount = new MountPoint($storage, '/foo');
|
||||||
Filesystem::getMountManager()->addMount($mount);
|
Filesystem::getMountManager()->addMount($mount);
|
||||||
$cache = $storage->getCache();
|
$cache = $storage->getCache();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue