summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/api.php
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-06-06 13:16:47 +0200
committerVincent Petry <pvince81@owncloud.com>2014-06-06 15:06:26 +0200
commit01c2c3107a8370fc57dc6144dcdcc108a92347a9 (patch)
tree725548f12f0906942aaaf6b1154546c7936fee5f /apps/files_external/lib/api.php
parent933c05566e21c27e4f2d4b4e9c2d54e7b363d304 (diff)
downloadnextcloud-server-01c2c3107a8370fc57dc6144dcdcc108a92347a9.tar.gz
nextcloud-server-01c2c3107a8370fc57dc6144dcdcc108a92347a9.zip
Added external storage list in files app
Diffstat (limited to 'apps/files_external/lib/api.php')
-rw-r--r--apps/files_external/lib/api.php64
1 files changed, 64 insertions, 0 deletions
diff --git a/apps/files_external/lib/api.php b/apps/files_external/lib/api.php
new file mode 100644
index 00000000000..d94dbcffc8f
--- /dev/null
+++ b/apps/files_external/lib/api.php
@@ -0,0 +1,64 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * @copyright 2014 Vincent Petry pvince81@owncloud.com
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\Files\External;
+
+class Api {
+
+ /**
+ * Returns the mount points visible for this user.
+ *
+ * @param array $params
+ * @return \OC_OCS_Result share information
+ */
+ 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);
+
+ $path = dirname($mountPoint);
+ if ($path === '.') {
+ $path = '';
+ }
+
+ // TODO: give delete permissions if mount type is personal
+ $permissions = \OCP\PERMISSION_READ;
+
+ // TODO: add storageType, might need to use another OC_Mount_Config method
+ $entries[] = array(
+ 'name' => basename($mountPoint),
+ 'path' => $path,
+ 'type' => 'dir',
+ 'permissions' => $permissions
+ );
+ }
+
+ return new \OC_OCS_Result($entries);
+ }
+}