Skip to content

Commit

Permalink
Use the mount config api for files_external
Browse files Browse the repository at this point in the history
  • Loading branch information
icewind1991 committed Dec 4, 2014
1 parent f4701d7 commit a369d78
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 18 deletions.
2 changes: 2 additions & 0 deletions apps/files_external/appinfo/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -177,3 +177,5 @@
'password' => '*'.$l->t('Password'),
'root' => '&'.$l->t('Root'))));

$mountProvider = new \OCA\Files_External\Config\ConfigAdapter();
\OC::$server->getMountProviderCollection()->registerProvider($mountProvider);
16 changes: 0 additions & 16 deletions apps/files_external/lib/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -103,22 +103,6 @@ public static function getBackends() {
* @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) {
Expand Down
44 changes: 44 additions & 0 deletions apps/files_external/lib/config/configadapter.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?php
/**
* Copyright (c) 2014 Robin Appelman <[email protected]>
* 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;
}
}
4 changes: 2 additions & 2 deletions apps/files_external/lib/personalmount.php
Original file line number Diff line number Diff line change
Expand Up @@ -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
*
Expand Down

0 comments on commit a369d78

Please sign in to comment.