summaryrefslogtreecommitdiffstats
path: root/apps/files_external/lib/Lib/Storage/OwnCloud.php
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2016-05-13 11:46:36 +0200
committerJoas Schilling <nickvergessen@owncloud.com>2016-05-24 08:41:22 +0200
commit4576891f10aa41cc146dc6ed421384269eca283a (patch)
tree0b3f8696b880fc0867c885af6ca9c2be14e3c372 /apps/files_external/lib/Lib/Storage/OwnCloud.php
parentb9fd7d4cc7834fd0fff01c1c6aa478a62a905bb1 (diff)
downloadnextcloud-server-4576891f10aa41cc146dc6ed421384269eca283a.tar.gz
nextcloud-server-4576891f10aa41cc146dc6ed421384269eca283a.zip
Move Lib\Storage to PSR-4
Diffstat (limited to 'apps/files_external/lib/Lib/Storage/OwnCloud.php')
-rw-r--r--apps/files_external/lib/Lib/Storage/OwnCloud.php74
1 files changed, 74 insertions, 0 deletions
diff --git a/apps/files_external/lib/Lib/Storage/OwnCloud.php b/apps/files_external/lib/Lib/Storage/OwnCloud.php
new file mode 100644
index 00000000000..22ecb4c806a
--- /dev/null
+++ b/apps/files_external/lib/Lib/Storage/OwnCloud.php
@@ -0,0 +1,74 @@
+<?php
+/**
+ * @author Morris Jobke <hey@morrisjobke.de>
+ * @author Robin McCorkell <robin@mccorkell.me.uk>
+ * @author Vincent Petry <pvince81@owncloud.com>
+ *
+ * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @license AGPL-3.0
+ *
+ * This code is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program 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, version 3,
+ * along with this program. If not, see <http://www.gnu.org/licenses/>
+ *
+ */
+
+namespace OCA\Files_External\Lib\Storage;
+
+/**
+ * ownCloud backend for external storage based on DAV backend.
+ *
+ * The ownCloud URL consists of three parts:
+ * http://%host/%context/remote.php/webdav/%root
+ *
+ */
+class OwnCloud extends \OC\Files\Storage\DAV{
+ const OC_URL_SUFFIX = 'remote.php/webdav';
+
+ public function __construct($params) {
+ // extract context path from host if specified
+ // (owncloud install path on host)
+ $host = $params['host'];
+ // strip protocol
+ if (substr($host, 0, 8) == "https://") {
+ $host = substr($host, 8);
+ $params['secure'] = true;
+ } else if (substr($host, 0, 7) == "http://") {
+ $host = substr($host, 7);
+ $params['secure'] = false;
+ }
+ $contextPath = '';
+ $hostSlashPos = strpos($host, '/');
+ if ($hostSlashPos !== false){
+ $contextPath = substr($host, $hostSlashPos);
+ $host = substr($host, 0, $hostSlashPos);
+ }
+
+ if (substr($contextPath, -1) !== '/'){
+ $contextPath .= '/';
+ }
+
+ if (isset($params['root'])){
+ $root = $params['root'];
+ if (substr($root, 0, 1) !== '/'){
+ $root = '/' . $root;
+ }
+ }
+ else{
+ $root = '/';
+ }
+
+ $params['host'] = $host;
+ $params['root'] = $contextPath . self::OC_URL_SUFFIX . $root;
+
+ parent::__construct($params);
+ }
+}