diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-06-06 13:50:41 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-06-06 15:06:26 +0200 |
commit | 710d017eec7a97c1e58ef0cd4556555cf84b9b8f (patch) | |
tree | ebf8f42347da4c727926bd09774db61322c8bd42 /apps/files_external/lib/api.php | |
parent | a47ef52ae2958a08ff3aca272c73973eb74d20ed (diff) | |
download | nextcloud-server-710d017eec7a97c1e58ef0cd4556555cf84b9b8f.tar.gz nextcloud-server-710d017eec7a97c1e58ef0cd4556555cf84b9b8f.zip |
Added more columns to ext storage list
Now using system mount and personal mount calls to get the relevant
mount points including backend information.
Diffstat (limited to 'apps/files_external/lib/api.php')
-rw-r--r-- | apps/files_external/lib/api.php | 61 |
1 files changed, 40 insertions, 21 deletions
diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php index d94dbcffc8f..51c48427aa3 100644 --- a/apps/files_external/lib/api.php +++ b/apps/files_external/lib/api.php @@ -25,6 +25,39 @@ namespace OCA\Files\External; class Api { /** + * Formats the given mount config to a mount entry. + * + * @param bool $isSystemMount true for system mount, false + * for personal mount + * + * @return array entry + */ + private static function formatMount($mountConfig, $isSystemMount = false) { + // split user name from mount point + $path = dirname($mountConfig['mountpoint']); + if ($path === '.') { + $path = ''; + } + + $permissions = \OCP\PERMISSION_READ; + // personal mounts can be deleted + if (!$isSystemMount) { + $permissions |= \OCP\PERMISSION_DELETE; + } + + // TODO: add storageType, might need to use another OC_Mount_Config method + $entry = array( + 'name' => basename($mountConfig['mountpoint']), + 'path' => $path, + 'type' => 'dir', + 'backend' => $mountConfig['backend'], + 'scope' => ( $isSystemMount ? 'system' : 'personal' ), + 'permissions' => $permissions + ); + return $entry; + } + + /** * Returns the mount points visible for this user. * * @param array $params @@ -33,30 +66,16 @@ class Api { public static function getUserMounts($params) { $entries = array(); $user = \OC_User::getUser(); - $mounts = \OC_Mount_Config::getAbsoluteMountPoints($user); - foreach ($mounts as $mountPoint => $config) { - // split user name from mount point - $parts = explode('/', ltrim($mountPoint, '/')); - array_shift($parts); // use name - array_shift($parts); // files - $mountPoint = implode('/', $parts); + $personalMounts = \OC_Mount_Config::getPersonalMountPoints(); + $systemMounts = \OC_Mount_Config::getSystemMountPoints(); - $path = dirname($mountPoint); - if ($path === '.') { - $path = ''; - } - - // TODO: give delete permissions if mount type is personal - $permissions = \OCP\PERMISSION_READ; + foreach ($systemMounts as $mountConfig) { + $entries[] = self::formatMount($mountConfig, true); + } - // TODO: add storageType, might need to use another OC_Mount_Config method - $entries[] = array( - 'name' => basename($mountPoint), - 'path' => $path, - 'type' => 'dir', - 'permissions' => $permissions - ); + foreach ($personalMounts as $mountConfig) { + $entries[] = self::formatMount($mountConfig, false); } return new \OC_OCS_Result($entries); |