Use the mount config api for files_external
This commit is contained in:
parent
f4701d7721
commit
a369d78124
|
@ -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
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue