diff options
author | Lukas Reschke <lukas@owncloud.com> | 2014-12-08 22:57:33 +0100 |
---|---|---|
committer | Lukas Reschke <lukas@owncloud.com> | 2014-12-08 22:57:33 +0100 |
commit | 25a87d4058b3ec7f21649940949b6fc0237968dc (patch) | |
tree | b21a76a5272e5a3599c28b787541fed98ddc4638 /apps | |
parent | f219f5a7a62fe88b364b9a5f50e9730eba1ee84c (diff) | |
parent | a369d7812463c2afddf1640c42643de6312ab9ba (diff) | |
download | nextcloud-server-25a87d4058b3ec7f21649940949b6fc0237968dc.tar.gz nextcloud-server-25a87d4058b3ec7f21649940949b6fc0237968dc.zip |
Merge pull request #12577 from owncloud/public-mount-api
Add a public api for apps to add mounts
Diffstat (limited to 'apps')
-rw-r--r-- | apps/files_external/appinfo/app.php | 2 | ||||
-rw-r--r-- | apps/files_external/lib/config.php | 16 | ||||
-rw-r--r-- | apps/files_external/lib/config/configadapter.php | 44 | ||||
-rw-r--r-- | apps/files_external/lib/personalmount.php | 4 | ||||
-rw-r--r-- | apps/files_sharing/lib/external/manager.php | 6 | ||||
-rw-r--r-- | apps/files_sharing/lib/external/mount.php | 5 | ||||
-rw-r--r-- | apps/files_sharing/lib/sharedmount.php | 4 |
7 files changed, 56 insertions, 25 deletions
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index ea14f7adbcf..707563096f8 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -177,3 +177,5 @@ OC_Mount_Config::registerBackend('\OC\Files\Storage\SFTP', array( 'password' => '*'.$l->t('Password'), 'root' => '&'.$l->t('Root')))); +$mountProvider = new \OCA\Files_External\Config\ConfigAdapter(); +\OC::$server->getMountProviderCollection()->registerProvider($mountProvider); diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index 898dc0c8543..b4ab8b70f33 100644 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -103,22 +103,6 @@ class OC_Mount_Config { * @param array $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']) { $user = \OC::$server->getUserManager()->get($data['user']); if (!$user) { diff --git a/apps/files_external/lib/config/configadapter.php b/apps/files_external/lib/config/configadapter.php new file mode 100644 index 00000000000..6294e27a774 --- /dev/null +++ b/apps/files_external/lib/config/configadapter.php @@ -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; + } +} diff --git a/apps/files_external/lib/personalmount.php b/apps/files_external/lib/personalmount.php index 708128d644a..0c741179139 100644 --- a/apps/files_external/lib/personalmount.php +++ b/apps/files_external/lib/personalmount.php @@ -8,13 +8,13 @@ namespace OCA\Files_External; -use OC\Files\Mount\Mount; +use OC\Files\Mount\MountPoint; use OC\Files\Mount\MoveableMount; /** * 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 * diff --git a/apps/files_sharing/lib/external/manager.php b/apps/files_sharing/lib/external/manager.php index 3b5483a5108..b52e1a5044e 100644 --- a/apps/files_sharing/lib/external/manager.php +++ b/apps/files_sharing/lib/external/manager.php @@ -24,7 +24,7 @@ class Manager { private $mountManager; /** - * @var \OC\Files\Storage\Loader + * @var \OC\Files\Storage\StorageFactory */ private $storageLoader; @@ -37,10 +37,10 @@ class Manager { * @param \OCP\IDBConnection $connection * @param \OC\Files\Mount\Manager $mountManager * @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, - \OC\Files\Storage\Loader $storageLoader, \OC\User\Session $userSession) { + \OC\Files\Storage\StorageFactory $storageLoader, \OC\User\Session $userSession) { $this->connection = $connection; $this->mountManager = $mountManager; $this->userSession = $userSession; diff --git a/apps/files_sharing/lib/external/mount.php b/apps/files_sharing/lib/external/mount.php index e564dded69a..6fd9882cb2a 100644 --- a/apps/files_sharing/lib/external/mount.php +++ b/apps/files_sharing/lib/external/mount.php @@ -8,9 +8,10 @@ namespace OCA\Files_Sharing\External; +use OC\Files\Mount\MountPoint; 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 @@ -22,7 +23,7 @@ class Mount extends \OC\Files\Mount\Mount implements MoveableMount { * @param string $mountpoint * @param array $options * @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) { parent::__construct($storage, $mountpoint, $options, $loader); diff --git a/apps/files_sharing/lib/sharedmount.php b/apps/files_sharing/lib/sharedmount.php index a93ecfb3b1b..d16dbf89ccf 100644 --- a/apps/files_sharing/lib/sharedmount.php +++ b/apps/files_sharing/lib/sharedmount.php @@ -8,13 +8,13 @@ namespace OCA\Files_Sharing; -use OC\Files\Mount\Mount; +use OC\Files\Mount\MountPoint; use OC\Files\Mount\MoveableMount; /** * 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 */ |