Use the mount config api for files_external
This commit is contained in:
parent
f4701d7721
commit
a369d78124
4 changed files with 48 additions and 18 deletions
|
@ -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);
|
||||
|
|
|
@ -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) {
|
||||
|
|
44
apps/files_external/lib/config/configadapter.php
Normal file
44
apps/files_external/lib/config/configadapter.php
Normal file
|
@ -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;
|
||||
|
||||
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
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue